一、介紹
動態資源:原始形式通常為程序文件,需要在服務器端執行之后,將執行結果返回給客戶端
cat /etc/mime.types 查看http默認支持的文件后綴,默認不支持PHP
二、centos 6 編譯安裝LAMP,php基於FPM模式的應用WordPress
原理:實現LAMP的全過程,基於FPM模式:php以獨立服務建立,且實現xcache加速
注意:一定要確保自己在純凈的環境,若有httpd、mysql、php請事先卸載
1、准備各個包,軟件+相關的包
mariadb-5.5.57-linux-x86_64.tar.gz
openssl-devel expat-devel pcre-devel http所依賴的
bzip2-devel libxml2-devel libmcrypt-devel php所依賴的,注意:需epel擴展源
2、編譯httpd2.4(用方法二)
① 解包解壓縮,把3個都放到統一目錄httpd-2.4.28下
mv apr-1.6.2 httpd-2.4.28/srclib/apr
mv apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
./configure --prefix=/app/httpd24 \
3、編譯安裝http 后的設置
PATH=/app/httpd24/bin:/usr/local/mysql/bin/:/app/php/bin/:$PATH 順便把后邊的mysql和php的也設置進去
. /etc/profile.d/lamp.sh 讓設置生效
cp /etc/init.d/httpd /etc/init.d/httpd24 拷個服務腳本,沒有的話去其他機器拷一個
chkconfig --add httpd24 設置開機啟動,哪個級別
4、二進制安裝mariadb-5.5.57
(1) 解包解壓縮
tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
(2) 創建mysql用戶
以為要存放數據庫,最好空間越大越好,這里用一個硬盤作為邏輯卷,不夠可以加空間
echo '- - -' > /sys/class/scsi_host/host2/scan 同步硬盤,虛擬機才能用,host2不行就host0
vgcreate vg_mysqldb /dev/sdb 創建vg
lvcreate -n lv_mysqldb -l +100%FREE vg_mysqldb 創建lv
mkfs.ext4 /dev/vg_mysqldb/lv_mysqldb -L /data/mysqldb 文件系統格式化
mkdir /data/mysqldb -p 創建掛載點,就是數據庫存放的地方
/dev/vg_mysqldb/lv_mysqldb /data/mysqldb ext4 defaults,acl 0 0
useradd -d /data/mysqldb -r -m -s /sbin/nologin mysql
(3) cd /usr/local/ 發現mariadb的目錄名字不符合要求
ln -s mariadb-5.5.57-linux-x86_64/ mysql 創建軟連接也可以改名
(4) 創建修改配置文件
ls support-files/ 包里自帶的有配置文件,但地方不對,要放在/etc/mysql/my.cnf
cp support-files/my-huge.cnf /etc/mysql/my.cnf
datadir = /data/mysqldb //指定總目錄,必須的
innodb_file_per_table = on //讓每一個表數據庫都是一個文件,方便管理
skip_name_resolve = on //忽略名字的反向解析,加快速度
(5)執行腳本,創建系統數據庫
cd /usr/local/mysql 一定要在這個目錄下執行腳本,因為腳本寫死了
./scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb 執行腳本
完成后就會在/app/mysqldb/ 生成mysql系統數據庫
(6)把服務腳本復制過去
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld 設置服務在哪個運行級別,在哪個運行級別開啟服務
service mysqld start 失敗,看失敗原因:缺少日志文件,日志文件須有讀寫權限
(7)創建日志文件
chown mysql /var/log/mysqld.log
(8)運行安全初始化腳本,同上實驗
(9)運行mysql,創建WordPress的數據庫和管理員並授權
MariaDB [(none)]> create database blogdb;
MariaDB [(none)]> grant all on blogdb.* to 'wpadm'@'localhost' identified by 'along' ;
4、編譯安裝php-5.6.31
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-config-file-path=/etc/php/ \
--with-config-file-scan-dir=/etc/php.d \
cd /root/src/php-5.6.31 在編譯源代碼的路徑
cp php.ini-production /etc/php/php.ini 復制生產類型的配置文件
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 復制個模板
cp /app/php/etc/php-fpm.conf.default /app/php/etc/php-fpm.conf
注意:在centos 7 中php-fpm.conf.default 和www.conf.default 這兩個文件都需要cp,但centos 6把這兩個文件合在php-fpm.conf.default 中了
略:vim /app/php/etc/php-fpm.conf 可以不修改,根據自己想要的設置
pm.max_spare_servers = 5 和pm.start_servers 一致
pid = /app/php/var/run/php-fpm.pid
5、修改http的主配置文件,讓其支持php
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
DirectoryIndexindex.phpindex.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
6、布署wordpress
mv wordpress/* /app/httpd24/htdocs/
③ 准備WordPress的配置文件 wp-config.php
cp wp-config-sample.php wp-config.php
define('DB_PASSWORD', 'along');
define('DB_HOST', 'localhost');
ab -c 10 -n 100 http://192.168.30.111/
7、編譯安裝xcache
cd xcache-3.2.0 發現沒有configure腳本
phpize 安裝包,執行這個命令,生成configure腳本
./configure --enable-xcache --with-php-config=/app/php/bin/php-config
ls /app/php/lib/php/extensions/no-debug-non-zts-20131226/
vim /etc/php.d/xcache.ini 因為是源碼編譯,xcache不是放在對應路徑下,所以需修改
extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so 修改此行
8、測試
ab -c 10 -n 100 http://192.168.30.111/ 確實性能提升很大
三、centos 7 編譯安裝LAMP,php基於模塊的應用WordPress
原理:實現LAMP的全過程,php基於FPM模式:php以獨立服務建立,且實現xcache加速
注意:一定要確保自己在純凈的環境,若有httpd、mysql、php請事先卸載
1、准備各個包,軟件+相關的包
mariadb-10.2.9-linux-x86_64.tar.gz
phpMyAdmin-4.0.10.20-all-languages.zip
openssl-devel expat-devel pcre-devel http所依賴的
bzip2-devel libxml2-devel libmcrypt-devel php所依賴的,注意:需epel擴展源
yum -y install openssl-devel expat-devel pcre-devel
yum -y install bzip2-devel libxml2-devel libmcrypt-devel
2、編譯httpd2.4(用方法一)
① 解包解壓縮,3個各自編譯安裝各自的
② 安裝apr-1.6.2.tar.bz2
./configure --prefix=/app/apr 執行腳本
③ 安裝apr-util-1.6.0.tar.bz2
./configure --prefix=/app/apr-util --with-apr=/app/apr/
④ 編譯安裝httpd-2.4
./configure --prefix=/app/httpd24 \
--with-apr-util=/app/apr-util/ \
⑤ make -j 4 && make install 並行,多線程編譯安裝
PATH=/app/httpd24/bin:/usr/local/mysql/bin/:/app/php/bin/:$PATH 順便把后邊的mysql和php的也設置進去
. /etc/profile.d/lamp.sh 讓設置生效
4、二進制安裝mariadb-10.2.8
(1) 解包解壓縮
tar xvf mariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local/
(2) 創建mysql用戶
useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql
(3) cd /usr/local/ 發現mariadb的目錄名字不符合要求
ln -s mariadb-10.2.9-linux-x86_64/ mysql 創建軟連接也可以改名
(4) 創建修改配置文件
ls support-files/ 包里自帶的有配置文件,但地方不對,要放在/etc/mysql/my.cnf
cp support-files/my-huge.cnf /etc/mysql/my.cnf
datadir = /app/mysqldb //指定總目錄,必須的
innodb_file_per_table = on //讓每一個表數據庫都是一個文件,方便管理
skip_name_resolve = on //忽略名字的反向解析,加快速度
(5)執行腳本,創建系統數據庫
cd /usr/local/mysql 一定要在這個目錄下執行腳本,因為腳本寫死了
./scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb 執行腳本
完成后就會在/app/mysqldb/ 生成mysql系統數據庫
(6)把服務腳本復制過去
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld 設置服務在哪個運行級別,在哪個運行級別開啟服務
service mysqld start 失敗,看失敗原因:缺少日志文件,日志文件須有讀寫權限
(7)創建日志文件
touch /var/log/mariadb/mariadb.log
chown mysql /var/log/mariadb/mariadb.log
(8)運行安全初始化腳本
(9)運行mysql,創建WordPress的數據庫和管理員並授權
MariaDB [(none)]> create database blogdb;
MariaDB [(none)]> grant all on blogdb.* to 'wpadm'@'localhost' identified by 'along' ;
5、編譯安裝php-7.1.10
--with-apxs2=/app/httpd24/bin/apxs \ (php基於模塊方式)
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
cp php.ini-production /etc/php.ini
vim /app/httpd24/conf/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
vim /app/httpd24/htdocs/index.php
$mysqli=new mysqli("localhost","root","along");
6、布署phpmyadmin
注意:不要隨便下載最新版,因為有的版本不支持PHP有些版本,例:4.7只支持php7.2
1、rz、解壓縮,裝包
unzip phpMyAdmin-4.0.10.20-all-languages.zip
2、cp -r phpMyAdmin-4.0.10.20-all-languages /app/httpd24/htdocs/pma/ 把文件放到//app/httpd24/htdocs下
3、在網頁上設置數據庫
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
7、布署wordpress
mv wordpress/* /app/httpd24/htdocs/
③ 准備WordPress的配置文件 wp-config.php
cp wp-config-sample.php wp-config.php
define('DB_PASSWORD', 'along');
define('DB_HOST', '192.168.30.222');
ab -c 10 -n 100 http://192.168.30.111/
實驗就到這里了~~~