Created
November 5, 2010 03:04
-
-
Save jonathonbyrdziak/663591 to your computer and use it in GitHub Desktop.
This is my installation guide for ubuntu 9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Installation script for a WordPress 3.01 website on Ubuntu 10.04 | |
# | |
# Jon Byrd and Kevin Penner | |
# Nov 13, 2010 | |
#get some parameters | |
echo "server name:" | |
read servername | |
echo "administrator email:" | |
read adminemail | |
echo "wordpress database password:" | |
read dbpass | |
echo "Upgrade Ubuntu" | |
sudo apt-get update | |
sudo apt-get upgrade | |
sudo apt-get dist- | |
echo "Get a firewall working" | |
apt-get install ufw | |
sudo ufw logging on | |
sudo ufw allow www | |
sudo ufw allow ssh | |
sudo ufw allow webmin | |
sudo ufw allow ntp | |
sudo ufw allow 443 | |
sudo ufw enable | |
** Synchronize the System Clock ** | |
sudo apt-get install ntp | |
echo "install Apache, MySQL, PHP and extra libraries needed for Jon" | |
sudo apt-get install apache2 php5 mysql-server php5-mysql php5-gd -y | |
sudo apt-get install php5-common php5-dev build-essential curl php5-curl -y | |
sudo apt-get install php-pear php5-snmp php5-mhash -y | |
sudo apt-get install php5-memcache php5-gd imagemagick php5-imagick -y | |
sudo apt-get install libapache2-mod-auth-mysql phpmyadmin libmysqlclient15-dev -y | |
sudo apt-get install php5-pspell php5-xmlrpc php5-xsl -y | |
sudo apt-get install php-fpdf -y | |
#install re2c because it is needed for FPDF | |
sudo apt-get install re2c -y | |
Echo "** PDF **********************************************************" | |
sudo apt-get install php-fpdf -y | |
echo "** Email *********************************************************" | |
sudo apt-get install sendmail -y | |
sudo /etc/init.d/apache2 reload | |
# Next part is modifed by Kevin Penner - Original from Jurgen Lust | |
# http://www.beeworks.be/wordpress-ubuntu-installation-script/ | |
# July 9, 2010 | |
#Getting ready for using SSL | |
sudo a2enmod ssl | |
sudo a2enmod rewrite | |
sudo /etc/init.d/apache2 restart | |
# generate certificates for the web server: | |
openssl genrsa -des3 -out $servername.key 1024 | |
openssl rsa -in $servername.key -out $servername.key.insecure | |
mv $servername.key $servername.key.secure | |
mv $servername.key.insecure $servername.key | |
openssl req -new -key $servername.key -out $servername.csr | |
# generate self-signed certificate | |
openssl x509 -req -days 365 -in $servername.csr -signkey $servername.key -out $servername.crt | |
# copy certificates to proper location | |
sudo cp $servername.crt /etc/ssl/certs | |
sudo cp $servername.key /etc/ssl/private | |
#validate the certs | |
openssl s_client -showcerts -connect $servername:443 | |
# point apache to the correct certificates | |
sudo sed -i "s/ssl-cert-snakeoil.pem/$servername.crt/" /etc/apache2/sites-available/default-ssl | |
sudo sed -i "s/ssl-cert-snakeoil.key/$servername.key/" /etc/apache2/sites-available/default-ssl | |
# update the server name and admin email in the secure site | |
sudo sed -i "s/webmaster@localhost/$adminemail/" /etc/apache2/sites-available/default-ssl | |
sudo sed -i "3a\ ServerName $servername" /etc/apache2/sites-available/default-ssl | |
# enable secure site | |
sudo a2ensite default-ssl | |
sudo /etc/init.d/apache2 reload | |
# disable http site for administration section of WordPress | |
sudo sed -i "s/webmaster@localhost/$adminemail/" /etc/apache2/sites-available/default | |
sudo sed -i "2a\ ServerName $servername" /etc/apache2/sites-available/default | |
sudo sed -i "3a\ Redirect permanent /wp-admin https://$servername/wp-admin" /etc/apache2/sites-available/default | |
sudo sed -i "4a\ Redirect permanent /wp-login.php https://$servername/wp-login.php" /etc/apache2/sites-available/default | |
sudo /etc/init.d/apache2 reload | |
#Reset MySQL password | |
sudo dpkg-reconfigure mysql-server-5.1 | |
#New Working Code - Kevin 13/11/2010 | |
# create database and user for wordpress | |
sudo mysql --user=root -p --execute="create database wordpress" | |
sudo mysql --user=root -p --execute="CREATE USER 'wordpressuser'@'localhost'IDENTIFIED BY '$dbpass'" | |
sudo mysql --user=root -p --execute="GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost'IDENTIFIED BY '$dbpass'" | |
sudo mysql --user=root -p --execute="FLUSH PRIVILEGES;" | |
# download WordPress | |
sudo wget -O /tmp/wordpress.tar.gz http://wordpress.org/latest.tar.gz | |
sudo tar -C /var/www -xvzf /tmp/wordpress.tar.gz | |
# configure WordPress | |
sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php | |
sudo wget -O /tmp/wp.keys https://api.wordpress.org/secret-key/1.1/salt/ | |
sudo sed -i "s/database_name_here/wordpress/" /var/www/wordpress/wp-config.php | |
sudo sed -i "s/username_here/wordpressuser/" /var/www/wordpress/wp-config.php | |
sudo sed -i "s/password_here/$dbpass/" /var/www/wordpress/wp-config.php | |
sudo sed -i '/#@-/r /tmp/wp.keys' /var/www/wordpress/wp-config.php | |
sudo sed -i "/#@+/,/#@-/d" /var/www/wordpress/wp-config.php | |
# move Apache document root to WordPress, both for the public and the secure site | |
sudo sed -i "s/DocumentRoot \/var\/www/DocumentRoot \/var\/www\/wordpress/" /etc/apache2/sites-available/default-ssl | |
sudo sed -i "s/DocumentRoot \/var\/www/DocumentRoot \/var\/www\/wordpress/" /etc/apache2/sites-available/default | |
sudo chown -R www-data:www-data /var/www/wordpress | |
sudo /etc/init.d/apache2 restart | |
#install PDFlib-Lite | |
sudo wget -O PDFlib-Lite-7.0.5.tar.gz http://www.pdflib.com/binaries/PDFlib/705/PDFlib-Lite-7.0.5.tar.gz | |
sudo tar zxvf PDFlib-Lite-7.0.5.tar.gz && \ | |
cd PDFlib-Lite-7.0.5/ && \ | |
./configure && \ | |
make && \ | |
make install | |
### When prompted for a directory enter /usr/local/ | |
pecl install pdflib | |
sudo /etc/init.d/apache2 restart | |
# Install Webmin | |
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.510-2_all.deb | |
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl | |
wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb | |
sudo dpkg -i libmd5-perl_2.03-1_all.deb | |
sudo dpkg -i webmin_1.510-2_all.deb | |
sudo apt-get install apt-show-versions | |
sudo apt-get -f install | |
#You Manuall need to do this | |
##sudo nano /etc/php5/apache2/php.ini | |
##extension=mysql.so | |
#You Manually need to do this | |
#nano /etc/mysql/my.cnf | |
#bind-address = 127.0.0.1 | |
#sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin | |
echo "WordPress installation finished. Open your browser and go to http://$servername/ to complete the installation." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Installation Packages | |
** Apache ******************************************************* | |
apache2 | |
** PHP5 Packages ************************************************ | |
php5 | |
libapache2-mod-php5 | |
php5-common | |
php5-dev | |
build-essential | |
curl | |
php5-curl | |
php-pear | |
php5-snmp | |
php5-mhash | |
#sudo pecl install pecl_http | |
#gksudo gedit /etc/apache2/apache2.conf | |
servername MYSERVERS_NAME_HERE | |
** PHP5 Cache ************************************************ | |
php5-memcache | |
** Image Support ************************************************* | |
php5-gd | |
imagemagick | |
php5-imagick | |
** MySql ********************************************************* | |
mysql-server | |
libapache2-mod-auth-mysql | |
php5-mysql | |
phpmyadmin | |
libmysqlclient15-dev | |
#gksudo gedit /etc/mysql/my.cnf | |
bind-address = 127.0.0.1 | |
#gksudo gedit /etc/php5/apache2/php.ini | |
extension=mysql.so | |
#sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin | |
** Email ********************************************************* | |
sendmail | |
** CONFIGURATIONS ************************************************ | |
a2enmod rewrite | |
** SPEED and Performance ***************************************** | |
# GOOGLE mod_pagespeed | |
#http://code.google.com/p/modpagespeed/wiki/HowToBuild | |
#http://blogs.sitepoint.com/2010/11/08/optimization-made-easy-with-mod_pagespeed/ | |
** FIREWALL ****************************************************** | |
#http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/ | |
shorewall | |
sudo cp /usr/share/doc/shorewall-common/examples/one-interface/* /etc/shorewall/ | |
sudo nano /etc/shorewall/rules | |
** Additional Libraries ***************************************** | |
php5-pspell | |
php5-xmlrpc | |
php5-xsl | |
** PDF ********************************************************** | |
php-fpdf | |
Step 1: PDFlib http://www.pdflib.com/ | |
download PDFlib-Lite: http://www.pdflib.com/download/pdflib-family/pdflib-lite-7/ | |
extract: tar -xzvf PDFlib-Lite-X.X.XpX.tar.gz | |
compile: cd PDFlib-Lite-X.X.XpX && ./configure && make && make install | |
Step 2: Pecl for PDFlib http://pecl.php.net/package/pdflib | |
install: | |
install dependences: phpize (php5-dev package) | |
pecl install pdflib | |
path to pdflib installation? :/usr/local | |
Step 3: php.ini | |
extension=pdf.so | |
** FAQs ********************************************************** | |
1. Could not reliably determine the server's fully qualified domain name | |
#gksudo gedit /etc/apache2/apache2.conf | |
servername MYSERVERS_NAME_HERE | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment