LAMP 實現全過程及wordpress的搭建


一、介紹

1、 LAM(M)P:

L:linux

A:apache (httpd)

M:mysql, mariadb

M:memcached 緩存

P:php, perl, python

 

WEB 資源類型:

靜態資源:原始形式與響應內容一致

動態資源:原始形式通常為程序文件,需要在服務器端執行之后,將執行結果返回給客戶端

 

Web 相關語言

客戶端技術: javascript ,html

服務器端技術:php, jsp,python

 

 

2、LAMP的工作原理:

cat /etc/mime.types 查看http默認支持的文件后綴,默認不支持PHP

 

 

二、centos 6 編譯安裝LAMP,php基於FPM模式的應用WordPress

原理:實現LAMP的全過程,基於FPM模式:php以獨立服務建立,且實現xcache加速

注意:一定要確保自己在純凈的環境,若有httpd、mysql、php請事先卸載

1、准備各個包,軟件+相關的包

mkdir /root/src 准備個目錄放包

① 軟件包

apr-1.6.2.tar.gz

apr-util-1.6.0.tar.gz

httpd-2.4.28.tar.bz2

mariadb-5.5.57-linux-x86_64.tar.gz

php-5.6.31.tar.xz

wordpress-4.8.1-zh_CN.tar.gz

xcache-3.2.0.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下

tar xvf apr-1.6.2.tar.gz

tar xvf apr-util-1.6.0.tar.gz

tar xvf httpd-2.4.28.tar.bz2

mv apr-1.6.2 httpd-2.4.28/srclib/apr

mv apr-util-1.6.0 httpd-2.4.28/srclib/apr-util

 

② 執行腳本

cd /root/src/httpd-2.4.28

./configure --prefix=/app/httpd24 \

--enable-so \

--enable-ssl \

--enable-cgi \

--enable-rewrite \

--with-zlib \

--with-pcre \

--with-included-apr \

--enable-modules=most \

--enable-mpms-shared=all \

--with-mpm=prefork

 

③ 並行、多線程編譯安裝

make -j 4 && make install

 

3、編譯安裝http 后的設置

① 修改PATH路徑,因為是編譯安裝

vim /etc/profile.d/lamp.sh

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   拷個服務腳本,沒有的話去其他機器拷一個

vim /etc/init.d/httpd24 修改路徑

chkconfig --add httpd24 設置開機啟動,哪個級別

service httpd24 start 開啟服務

 

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

② 創建邏輯卷

pvcreate /dev/sdb 創建pv

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   創建掛載點,就是數據庫存放的地方

vim /etc/fstab   設置開機自動掛載

/dev/vg_mysqldb/lv_mysqldb /data/mysqldb ext4 defaults,acl 0 0

mount -a 掛載

 

④ 創建用戶

useradd -d /data/mysqldb -r -m -s /sbin/nologin mysql

chown mysql /data/mysqldb/

 

(3) cd /usr/local/ 發現mariadb的目錄名字不符合要求

ln -s mariadb-5.5.57-linux-x86_64/ mysql   創建軟連接也可以改名

 

(4) 創建修改配置文件

① 拷貝配置文件

cd /usr/local/mysql/

ls support-files/   包里自帶的有配置文件,但地方不對,要放在/etc/mysql/my.cnf

mkdir /etc/mysql

cp support-files/my-huge.cnf /etc/mysql/my.cnf

 

② 修改配置文件

vim /etc/mysql/my.cnf 修改配置文件

[mysqld]

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 設置服務在哪個運行級別,在哪個運行級別開啟服務

chkconfig --list mysqld

service mysqld start 失敗,看失敗原因:缺少日志文件,日志文件須有讀寫權限

 

(7)創建日志文件

touch /var/log/mysqld.log

chown mysql /var/log/mysqld.log

service mysqld start 開啟成功

 

(8)運行安全初始化腳本,同上實驗

mysql_secure_installation

 

(9)運行mysql,創建WordPress的數據庫和管理員並授權

mysql -uroot -palong(自己設的密碼)

MariaDB [(none)]> create database blogdb;

MariaDB [(none)]> grant all on blogdb.* to 'wpadm'@'localhost' identified by 'along' ;

 

4、編譯安裝php-5.6.31

① 解包 tar xvf

② 執行腳本

cd /root/src/php-5.6.31

./configure \

--prefix=/app/php \

--with-mysql=/usr/local/mysql \

--with-openssl \

--with-mysqli=/usr/local/mysql/bin/mysql_config \

--enable-mbstring \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--enable-sockets \

--enable-fpm \

--with-mcrypt \

--with-config-file-path=/etc/php/ \

--with-config-file-scan-dir=/etc/php.d \

--with-bz2

③ make -j 4 && make install

 

④ 創建並修改php 的配置文件和服務腳本

cd /root/src/php-5.6.31 在編譯源代碼的路徑

mkdir /etc/php

cp php.ini-production /etc/php/php.ini 復制生產類型的配置文件

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 復制個模板

chmod +x /etc/init.d/php-fpm

 

⑤ 編輯php配置文件

cd /app/php/etc 在編譯源后的路徑

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_children = 50

pm.start_servers = 5

pm.min_spare_servers = 2

pm.max_spare_servers = 5 和pm.start_servers 一致

pid = /app/php/var/run/php-fpm.pid

 

⑥ 開啟php-ftm服務

service php-fpm start

ss -ntl 開啟9000端口

chkconfig --add php-fpm

 

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

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

 

6、布署wordpress

① 解包解壓縮

② 把所有東西移到/app/httpd24/htdocs/

cd /src/wordpress

rm -rf /app/httpd24/htdocs/*

mv wordpress/* /app/httpd24/htdocs/

 

③ 准備WordPress的配置文件 wp-config.php

cd /app/httpd24/htdocs

cp wp-config-sample.php wp-config.php

vim wp-config.php 修改4行

define('DB_NAME', 'blogdb');

define('DB_USER', 'wpadm');

define('DB_PASSWORD', 'along');

define('DB_HOST', 'localhost');

 

④ 網頁打開,設置,成功

 

⑤ ab 測試性能

ab -c 10 -n 100 http://192.168.30.111/

 

7、編譯安裝xcache

① 解包

tar xvf xcache-3.2.0.tar.gz

② 執行腳本

cd xcache-3.2.0 發現沒有configure腳本

yum -y install php-devel

phpize 安裝包,執行這個命令,生成configure腳本

./configure --enable-xcache --with-php-config=/app/php/bin/php-config

③ 編譯安裝

make && make install

④ 修改配置文件

mkdir /etc/php.d/

cp xcache.ini /etc/php.d/

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 修改此行

 

service php-fpm restart

 

8、測試

① ab 測試性能

ab -c 10 -n 100 http://192.168.30.111/ 確實性能提升很大

② 也可用文件測試

/app/httpd24/htdocs

vim a.php

<?php

phpinfo() 確認xcache 已加載

?>

能看到xcache模塊的信息

 

 

三、centos 7 編譯安裝LAMP,php基於模塊的應用WordPress

原理:實現LAMP的全過程,php基於FPM模式:php以獨立服務建立,且實現xcache加速

注意一定要確保自己在純凈的環境,若有httpd、mysql、php請事先卸載

1、准備各個包,軟件+相關的包

mkdir /root/src 准備個目錄放包

① 軟件包

apr-1.6.2.tar.gz

apr-util-1.6.0.tar.gz

httpd-2.4.28.tar.bz2

mariadb-10.2.9-linux-x86_64.tar.gz

php-7.1.10.tar.xz

phpMyAdmin-4.0.10.20-all-languages.zip

wordpress-4.8.1-zh_CN.tar.gz

xcache-3.2.0.tar.gz

 

② 所依賴的相關包

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

apr-util-1.6.0.tar.bz2

httpd-2.4.28.tar.bz2

 

② 安裝apr-1.6.2.tar.bz2

cd apr-1.6.2

./configure --prefix=/app/apr 執行腳本

make && make install 並行編譯安裝

 

③ 安裝apr-util-1.6.0.tar.bz2

cd ../apr-util-1.6.0

./configure --prefix=/app/apr-util --with-apr=/app/apr/

make -j 2 && make install

檢查是否成功:ls /app/apr-util/

 

④ 編譯安裝httpd-2.4

cd ../httpd-2.4.28

./configure --prefix=/app/httpd24 \

--enable-so \

--enable-ssl \

--enable-cgi \

--enable-rewrite \

--with-zlib \

--with-pcre \

--with-apr=/app/apr/ \

--with-apr-util=/app/apr-util/ \

--enable-modules=most \

--enable-mpms-shared=all \

--with-mpm=prefork 執行腳本

 

⑤ make -j 4 && make install 並行,多線程編譯安裝

 

 

3、編譯安裝http 后的設置

① 修改PATH路徑,因為是編譯安裝

vim /etc/profile.d/lamp.sh

PATH=/app/httpd24/bin:/usr/local/mysql/bin/:/app/php/bin/:$PATH 順便把后邊的mysql和php的也設置進去

 

. /etc/profile.d/lamp.sh 讓設置生效

 

② 啟動服務

apachectl 啟動服務

ss -tnl 查看端口

 

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

chown mysql /app/mysqldb/

 

(3) cd /usr/local/ 發現mariadb的目錄名字不符合要求

ln -s mariadb-10.2.9-linux-x86_64/ mysql 創建軟連接也可以改名

 

(4) 創建修改配置文件

① 拷貝配置文件

cd /usr/local/mysql/

ls support-files/ 包里自帶的有配置文件,但地方不對,要放在/etc/mysql/my.cnf

mkdir /etc/mysql

cp support-files/my-huge.cnf /etc/mysql/my.cnf

 

② 修改配置文件

vim /etc/mysql/my.cnf 修改配置文件

[mysqld]

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 設置服務在哪個運行級別,在哪個運行級別開啟服務

chkconfig --list mysqld

service mysqld start 失敗,看失敗原因:缺少日志文件,日志文件須有讀寫權限

 

(7)創建日志文件

mkdir /var/log/mariadb/

touch /var/log/mariadb/mariadb.log

chown mysql /var/log/mariadb/mariadb.log

service mysqld start 開啟成功

 

(8)運行安全初始化腳本

mysql_secure_installation

 

(9)運行mysql,創建WordPress的數據庫和管理員並授權

mysql -uroot -palong(自己設的密碼)

MariaDB [(none)]> create database blogdb;

MariaDB [(none)]> grant all on blogdb.* to 'wpadm'@'localhost' identified by 'along' ;

 

5、編譯安裝php-7.1.10

① 解包 tar xvf

② 執行腳本

cd /root/src/php-7.1.10/

./configure \

--prefix=/app/php \

--enable-mysqlnd \

--with-mysqli=mysqlnd \

--with-openssl \

--with-pdo-mysql=mysqlnd \

--enable-mbstring \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--enable-sockets \

--with-apxs2=/app/httpd24/bin/apxs \ (php基於模塊方式)

--with-mcrypt \

--with-config-file-path=/etc \

--with-config-file-scan-dir=/etc/php.d \

--enable-maintainer-zts \

--disable-fileinfo

③ make -j 4 && make install

 

④ 創建並修改php 的配置文件和服務腳本

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

修改下面行

<IfModule dir_module>

DirectoryIndex index.php index.html

</IfModule>

apachectl stop

apachectl

 

⑤ 測試

測試php和mariadb連接

vim /app/httpd24/htdocs/index.php

<?php

$mysqli=new mysqli("localhost","root","along");

if(mysqli_connect_errno()){

echo "連接數據庫失敗!";

$mysqli=null;

exit;

}

echo "連接數據庫成功!";

$mysqli->close();

phpinfo();

?>

  

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下

網頁打開發現確實東西 php-mbstring包

yum -y install php-mbstring

systemctl restart httpd 重啟服務

 

3、在網頁上設置數據庫

① 登錄

② 創建wpdb數據庫,一會給WordPress用

③ 創建用戶wpuser,

給他對wpdb數據庫的全部權限

 

 

③ 加下面四行

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

 

7、布署wordpress

① 解包解壓縮

② 把所有東西移到/app/httpd24/htdocs/

cd /src/wordpress

mv wordpress/* /app/httpd24/htdocs/

 

③ 准備WordPress的配置文件 wp-config.php

cd /app/httpd24/htdocs

cp wp-config-sample.php wp-config.php

vim wp-config.php 修改4行

define('DB_NAME', 'wpdb');

define('DB_USER', 'along');

define('DB_PASSWORD', 'along');

define('DB_HOST', '192.168.30.222');

 

④ 網頁打開,設置,成功

 

⑤ ab 測試性能

ab -c 10 -n 100 http://192.168.30.111/

實驗就到這里了~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM