1. 安裝mysql
cd /usr/local/src/
wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.47-linux2.6-x86_64.tar.gzphp
tar zxvf mysql-5.5.47-linux2.6-x86_64.tar.gzhtml
useradd -s /sbin/nologin -M mysql (建立mysql帳戶,-s不讓mysql登陸,-M不建立家目錄)mysql
mv mysql-5.5.47-linux2.6-x86_64 /usr/local/mysql (移動再重命名)
cd /usr/local/mysql
mkdir -p /data/mysql (數據存放)
chown -R mysql:mysql /data/mysql (權限更改)
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql (初始化數據庫,指定用戶和存放數據的路勁)linux
用echo $?能夠查看是否安裝成功,返回值0,或者有兩個OK也說明安裝成功了
cp support-files/my-large.cnf /etc/my.cnf (my.cnf是裝系統時候提供的,這個是沒用的,如今拷貝過去)nginx
vim /etc/my.cnf(註釋掉了三個,不去記錄binlog)sql
prot跟socket這兩個是能夠通訊的
cp support-files/mysql.server /etc/init.d/mysqld數據庫
chmod 755 /etc/init.d/mysqld
vim /etc/init.d/mysqld #修改datadirapache
chkconfig --add mysqld (把mysqld加入到服務列表中)
chkconfig mysqld on
service mysqld start
ps aux|grep mysqlvim
netstat -lnp|grep mysql
遇到問題要安裝yum install -y libaio瀏覽器
從新安裝編譯時,要刪除/etc/my.cnf和/usr/local/mysql才行。
2. Apache編譯安裝
wget http://archive.apache.org/dist/httpd/httpd-2.2.27.tar.bz2
tar jvxf httpd-2.2.27.tar.bz2
cd httpd-2.2.27
vim INSTALL(能夠參考安裝文檔)
./configure \ --prefix=/usr/local/apache2 \ (指定安裝Apache安裝在哪裏) --with-included-apr \ (apr是httpd安裝的一個依賴包,它能夠跨平臺去運做) --enable-so \ --enable-deflate=shared \ (三個shared是以動態共享的模式來安裝) --enable-expires=shared \ --enable-rewrite=shared \ --with-pcre (正則相關的一個庫)
make && make install
/usr/local/apache2/bin/apachectl start (啓動Apache,restart重啓,stop中止,graceful從新加載配置文件,restart是把進程殺掉,再啓動,而graceful是把配置文件從新加載)
ps aux|grep httpd
/usr/local/apache2/bin/apachectl -M (把模塊列出來,有靜態,動態加載的模塊)
ls /usr/local/apache2/modules/ (以.so結尾就是動態共享模塊的名字,用到動態模塊纔去加載)
ls /usr/local/apache2/bin/httpd (靜態模塊直接塞到httpd這個文件裏面,動態模塊沒有在裏面)
du -sh /usr/local/apache2/bin/httpd
/usr/local/apache2/bin/apachectl -l (只是把靜態的模塊列出來)
./configure --help|less (能夠查看Apache的工做模式,搜索/--with-mpm,經常使用的有worker和prefork這兩個模式,2.4版本默認的是event,2.2版本默認的是prefork)
/usr/local/apache2/bin/apachectl -t (是用來檢測配置文件是否是有語法錯誤)
ls /usr/local/apache2/conf/httpd.conf (配置文件)
遇到問題要安裝yum isntall -y gcc yum isntall -y zlib-devel
3.Apache的mpm工做模式
/usr/local/apache2/bin/apachectl -l 能夠看到是在哪一個模式下運行
prefork(實際上是子進程,Ss主進程派生出不少的S子進程)
worker[進程跟線程同時存在](每一個子進程下面還有線程,進程跟線程主要的區別在於線程是進程下面的派生出來的更小單位的方式,那麼線程下,一個進程的內存會共享給其餘線程去使用,一旦進程崩潰,下面的線程都會受到牽連,好處就是能夠共享一段內存,在高併發狀況下,而prefork:每一個子進程都有一個單獨的內存,若是一個進程發生了故障,那麼它不會影響其餘的進程,可是在高併發狀況下,會比worker工做模式佔內存大得)
event(是worker的升級版,也是線程的形式)
./configure --help| grep -A3 'with-mpm'
想換工做模式時,在編譯時加上這個參數--with-mpm=worker|event|perfork
4. 安裝php
wget http://cn2.php.net/distributions/php-5.6.18.tar.gz
tar zxf php-5.6.18.tar.gz
cd php-5.6.18
./configure \ --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache2/bin/apxs \(它是一個自動的,幫助咱們去安裝擴展模塊的,安裝動態可能就須要這個工具) --with-config-file-path=/usr/local/php/etc \ --with-mysql=/usr/local/mysql \ (php也是依賴於mysql,因此先要安裝mysql和Apache,再安裝php) --with-libxml-dir \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-iconv-dir \ --with-zlib-dir \ --with-bz2 \ --with-openssl \ --with-mcrypt \ --enable-soap \ --enable-gd-native-ttf \ --enable-mbstring \ --enable-sockets \ --enable-exif \ --disable-ipv6 make && make install rpm -ivh 'http://www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_64.noarch.rpm '(安裝擴展源)
yum list |grep -i mcrypt
ls /usr/local/apache2/modules/ (會多出一個libphp.so的動態模塊文件,就是由於apxs)
/usr/local/php/bin/php -m (能夠查看到它的模塊,這些都是靜態加載的模塊,也有動態加載的模塊)
/usr/local/php/bin/php -i (能夠看一些相關的配置)
安裝過程遇到的問題:yum install -y libxml2-devel yum install -y openssl-devel yum install -y bzip2-devel yum install -y libjpeg-devel yum install -y libpng-devel yum install -y freetype-devel
5. 測試php解析
/usr/local/apache2/bin/apachectl -M (能夠看到加載了php5_modole模塊)
/usr/local/apache2/bin/apachectl restart
cd /usr/local/apache2/htdocs (訪問網頁放在這個目錄下)
vim 1.php
<?php
echo "php解析正常";
?>
保存後,繼續測試:
curl localhost/1.php
vim info.php
<?php
phpinfo();
?>
在瀏覽器輸入網址192.168.0.188/info.php跟在/usr/local/php/bin/php -i|less效果是同樣的,能夠看到編譯php的參數
cat /usr/local/apache2/build/config.nice (能夠查看到編譯Apache的參數)
cat /usr/local/mysql/bin/mysqlbug|grep configure (能夠查看到編譯mysql的參數)
Linux下查看Nginx、Napache、MySQL、PHP的編譯參數的命令以下:
一、nginx編譯參數:
#/usr/local/nginx/sbin/nginx -V
二、apache編譯參數:
# cat /usr/local/apache/build/config.nice
三、php編譯參數:
# /usr/local/php/bin/php -i |grep configure
四、mysql編譯參數:
# cat /usr/local/mysql/bin/mysqlbug|grep configure
vim /usr/local/apache2/conf/httpd.conf
配置apache結合php
找到:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
改成:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
找到:
AddType application/x-gzip .gz .tgz
在該行下面添加:
AddType application/x-httpd-php .php
找到:
<IfModule dir_module>
DirectoryIndex index.html (索引頁)
</IfModule>
將該行改成:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
找到:
#ServerName www.example.com:80
修改成:
ServerName localhost:80
cp /usr/local/src/php-5.6.18/php.ini-production /usr/local/php/etc/php.ini(拷貝php.ini的配置文件)
/usr/local/apache2/bin/apachectl graceful
在瀏覽器輸入192.168.0.188/info.php就能夠看到加載到的php.ini的配置文件
curl 192.168.0.188/info.php