Hudsonvalley
useradd - setting up accounts
lastlog (lists all the users) useradd -d/home/newdir newdir (makeit <=8 char) passwd newdir
create a publichtml and set permissions
cd /home mkdir /newdir chmod 711 /home/newdir cd /home/newdir mkdir public_html chmod ugo+rx -R public_html
apache etc/httpd.conf setup
This is probably already done. Do this maybe if new install of server
<IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # #UserDir disable # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disable" line above, and uncomment # the following line instead: # UserDir public_html </IfModule> # # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. # <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
in /etc/apache2/sites-available create a file with the username
<VirtualHost *:80> DocumentRoot /home/abvbread/public_html ServerName www.abvbreadandroses.info # Other directives here </VirtualHost>
cd /etc/apache2/sites-enabled a2ensite webeshop (puts a link in sites-enabled) or do it manually - ln -s ../sites-available/webeshop webeshop /etc/init.d/apache2 reload sudo /etc/init.d/apache2 restart OR apache2ctl restart
R http://198.23.156.78:8787/
added cspan archive to /etc/apt/sources.list <syntaxhighlight> deb http://archive.ubuntu.com/ubuntu lucid main restricted universe deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe deb http://archive.ubuntu.com/ubuntu lucid-security main restricted universe deb http://archive.canonical.com/ lucid partner deb http://archive.canonical.com/ lucid partner deb http://watson.nci.nih.gov/cran_mirror/bin/linux/ubuntu lucid/ </syntaxhighlight> installed R <syntaxhighlight>
sudo apt-get update sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 sudo apt-get install r-base sudo apt-get install r-base-dev
</syntaxhighlight> installed rstudio http://198.23.156.78:8787/ <syntaxhighlight> $ sudo apt-get install gdebi-core $ sudo apt-get install libapparmor1 # Required only for Ubuntu, not Debian $ wget http://download2.rstudio.org/rstudio-server-0.97.312-i386.deb $ sudo gdebi rstudio-server-0.97.312-i386.deb </syntaxhighlight> you can add packages from the web rstudio <syntaxhighlight> </syntaxhighlight>
doku
to delete junk archive files
# find /home/sitebuil/public_html/doku/data/attic/ -type f -print0 | xargs -0r rm -f
Ubuntu 10.04 java
Since $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" DOESN'T WORK
If you need the real Sun JRE you can:
- goto dir like /usr/local/src or wherever you put stuff you install that's not apt-get
- download java-jre with duinsoft's install script:
- gunzip it
- run the install script
- find out whereis (I found it got installed to /opt/java/32/jre1.7.0_09/bin/java)
- link to it from /usr/local/bin
- restart the shell so your computer can find it
# cd usr/local/src # lynx http://www.duinsoft.nl/pkg/pool/all/update-sun-jre.bin # gunzip update-sun-jre.bin.gz # sh update-sun-jre.bin # cd /usr/local/bin # ln -s /opt/java/32/jre1.7.0_09/bin/java
execute-root-commands-via-php
http://stackoverflow.com/questions/8532304/execute-root-commands-via-php
php include directory
is where to put code that you want to run from multiple different directories. However it can't seem to be set in php.ini. The default is usr/share/php. In order to include files from /usr/local/share/php5/ I put a link in /usr/share/php/ to /usr/local/share/php5/chromephp/ChromePhp.php
console log with ChromePhp.php
now included in /usr/share/php files to see in console whatever you put in ChromePhp::log('hello world'); BTW tutn php consol logging on in top right of browser (blue is on) <syntaxhighlight lang="php"> <?php include 'ChromePhp.php'; ChromePhp::log('hello world'); </syntaxhighlight>
php error reporting to browser
/etc/php5/apache2/php.ini links to development version that logs errors to browser.
allowing www-data user to write to directory
usermod -a -G group1,group2 username
Where username is the user you want to modify and group1 and group2 are the new groups you want that user to join. Running the command without the -a argument will remove that user from all groups except group1 and group2.
groups sitebuil members cando chgrp -Rv cando /home/pathbost/public_html/ystill
locate
but first updatedb
backups
Scripts are in /usr/local/lib/tm/scripts
<syntaxhighlight lang = "php">
- !/bin/bash
_now=$(date +"%m_%d_%Y") _file="/var/backups/misc/bkp-rand_$_now.tar.gz" echo "Starting backup to $_file..." tar czvf $_file $(<file-dir-list.txt) php s3_db.php sitebuil_wuffdb php s3_db.php sitebuil_wikidb php s3_db.php sitebuil_wrdp1 php s3_db.php hsc php s3_db.php webeshoppin php s3_dir.php /var/backups/misc/ </syntaxhighlight>
http://olivier.sessink.nl/publications/hotcloning/ https://my.hostus.us/cart.php?a=confproduct&i=0
cron and backups
https://help.ubuntu.com/community/CronHowto
sitebuilt current backup setup
scripts are in
/usr/local/lib/tim/scripts
you need composer
apt-get update apt-get install curl apt-get install php5 git php5-curl php5-cli curl -sS https://getcomposer.org/installer | php
composer.json lists the aws php dependencies
composer install composer update
aws credentails are in /root/.aws/credentials
<syntaxhighlight lang="bash">
- !/bin/bash
_now=$(date +"%m_%d_%Y") _dir="/var/backups/s3/" _file="files_$_now.tar.gz" _bth=$_dir$_file echo "Starting backup to $_bth..." tar czf $_bth $(<file-dir-list.txt) php s3_dir.php $_file
php s3_db.php sitebuil_wuffdb php s3_db.php sitebuil_wikidb php s3_db.php sitebuil_wrdp1 php s3_db.php hsc php s3_db.php restoring </syntaxhighlight>
The tar command takes a file list, it has to be correct
# m h dom mon dow command 0 3 * * * cd /usr/local/lib/tm/scripts; ./backup.sh 0 2 * * * find /var/backups/s3/*.gz -ctime +21 -type f -print | xargs rm -f
- cron tutorial another
- Re: Where is crontab stored?
- Root-level crontab should be in /etc/crontab.
- Root-level anacron and periodics should be in /etc/cron*
- User-level crontabs should be in /var/spool/cron/crontabs - they are listed by user, pathbost isactually a chrontab
- select-editor
installing and testing a crontab
installing
- even after you change it by yourself you can install it by running as root
sudo crontab -u pathbost /var/spool/cron/crontabs/pathbost
testing
* * * * * /bin/echo " pathGZoobar $(date) " >> /usr/local/docs/testcron.txt
will append this every minute to testcron.txt
pathGZoobar Thu Jan 3 14:15:01 EST 2013
You can check the logs to see if the crontab got installed/executed by running as root
sudo tail /var/log/syslog
vi with crontab 101
- su to user then 'crontab -e'
- 'i' to insert text
- 'esc :wq to save change, and quit
- then crontab is installed
- 'esc :q!' exits without saving (or installing)
- you can kill your crontab with crontab -r
- you can list the installed crontab with crontab -l
backup to s3
Backups have a 30 day life on s3 and a 21 day life in /var/backups/backup backup_to_S3 code
directory backup
To backup a directory run this from the terminal:
sudo php /home/sitebuil/scripts/S3-Site-Backups/s3cli_backupDir.php /home/sitebuil/public_html/doku doku
database backup
sudo php php /home/sitebuil/scripts/S3-Site-Backups/s3cli_backupDb.php sitebuil_wiki
or goto http://pathboston.com/zstill/stillwater.html
refs
- http://www.cenolan.com/2008/05/simple-linux-to-amazon-s3-backup-script/
- http://www.alvechurchdata.co.uk/softhanoi.htm
- http://s3tools.org/s3cmd
- http://tagmycode.com/snippet/480/backup-mysql-database-to-amazon-s3-with-s3cmd-on-debian#.UMifCoP2GSo
- http://docs.amazonwebservices.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
- http://en.wikipedia.org/wiki/Backup_rotation_scheme
- managing-cron-jobs-with-php-2 GOOD
- http://www.prosoxi.com/2012/12/14/php-crontab-class-to-add-edit-and-remove-cron-jobs/
string meaning
------ ------- @reboot Run once, at startup @yearly Run once a year, "0 0 1 1 *" @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *" @weekly Run once a week, "0 0 * * 0" @daily Run once a day, "0 0 * * *" @midnight (same as @daily) @hourly Run once an hour, "0 * * * *"
password protecting directories
Directories that are password protected are in /etc/apache2/sites-avalable pathbost and sitebuil
visitor statistics
http://www.hping.org/visitors/doc.html
visitors --output text -A -m 30 /var/log/apache2/access.log -o html >home/sitebuil/public_html/files/webstats.html visitors --output text -A -m 30 /var/log/apache2/other_vhosts_access.log --trails --prefix http://sitebuilt.net -o html > /home/sitebuil/public_html/files/webstatsSBS.html visitors --output text -A -m 30 /var/log/apache2/other_vhosts_access.log --trails --prefix http://pathbost.com -o html > /home/sitebuil/public_html/files/webstatsPATH.html visitors --output text -A -m 30 /var/log/apache2/other_vhosts_access.log --trails --prefix http://levelthefield.us -o html > /home/sitebuil/public_html/files/webstatsLTF.html
other software
that doesn't get put somewhere automatically
- Put source.taz.gz under /usr/local/src
- From /usr/local/bin creagte a link
ln -s ../src/srcdir/compiledbin
securing phpmyadmin
https://nearwater (works only from tims laptop) http://paynedigital.com/2011/09/setting-up-and-securing-a-phpmyadmin-install-on-ubuntu-10-04
- 1. setting up ssl certificate
mkdir /etc/apache2/ssl openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key
- 2. mv phpmyadmin.conf inside a virtual host and put it in sites-available
mv /etc/apache2/conf.d/phpmyadmin.conf /etc/apache2/sites-available/
- 3. edit take out Alias, add virtual host and put in new credentials (pem and key)
- 4. got /etc/apache2/sites-enables and enable it
ln -s ../sites-available/phpmyadmin.conf
- 5. goto /etc/apache2/ports.conf and add
NameVirtualHost 198.23.156.78:443
- 6. restart apache
/usr/sbin/apache2ctl restart
- put a host file entry in windows or from wherever you wan to get to this host
/windows/system32/drivers/etc/hosts 198.23.156.78 nearwater
moving databases
copies as of 12/2012 of databases are on windows machine /documents/sites/mysqldumps
In phpmyadmin of the target mnachine create a user with same nae as source user and put the source ip as host. Create the (empty)databases on the target
root@server1 /var/backups# mysql -u root -p -h localhost pathbost_assess < pathbost_assess.sql root@10.194.101.169: home$ mysqldump -utim -pnji9ol pathbost_h409 | mysql -h198.23.156.78 -utim -pnji9ol pathbost_h409 mysqldump -utim -pnji9ol pathbost_poets | mysql -h198.23.156.78 -utim -pnji9ol pathbost_poets
To copy directories from old vps to new
root@10.194.101.169: home$ rsync -aHvz /home/pathbost/public_html root@198.23.156.78:/home/pathbost
installed lamp stack using https://help.ubuntu.com/community/ApacheMySQLPHP
Run, Stop, Test, And Restart Apache
Use the following command to run Apache :
$ sudo /usr/sbin/apache2ctl start $ sudo /usr/sbin/apache2ctl stop $ sudo /usr/sbin/apache2ctl configtest $ sudo /usr/sbin/apache2ctl restart
Mysql
- Commented out # bind-address = 127.0.0.1 in /etc/mysql/my.cnf so as to access db from any server
$ restart mysql