LAMP :
L:linux
A:apachectl (http)
M:mysql
P:php
httpd:接收用戶的web請求;靜態資源則直接響應;動態資源為php腳本, 對此類資源的請求將交由php來運行
php:運行php程序
MariaDB:數據管理系統
靜態資源:客戶端和服務器端的程序代碼是相同的
動態資源:客戶端和服務器端的程序代碼是不同的,需要在服務器端執行之后, 將執行結果返回給客戶端
PHP連接數據庫的三種方式:(在安裝php-mysql包時會自動將以下三種模式都裝上)
Php使用mysql擴展連接數據庫
Php使用mysqli擴展連接數據庫
Php使用pdo擴展連接數據庫
實驗:快速基本安裝LAMP
CentOS 6:
yum install httpd, php, mysql-server, php-mysql ? ?? (安裝包)
service httpd start service mysqld start ?(啟動服務)
CentOS 7:
yum install httpd, php, php-mysql, mariadb-server ? (安裝包)
systemctl start httpd.service systemctl start mariadb.service ?(啟動服務)
注意:要使用prefork模型
1 . 進入數據庫新建一個授權測試用戶:
grant all on *.* to test@’192.168.60.%’ identified by ‘centos’;
2. cd? /var/www/html/? (進入http的主頁面文件夾下新建測試文件)
vim testmysql1.php
<?php
$mysqli=new mysqli(“192.168.60.4”,”test”,”centos”); ?? (里面填寫的就是剛剛在數據庫創建的測試用戶)
if(mysqli_connect_errno()){
echo “Failure”;
$mysqli=null;
exit;
}
echo “OK”;
$mysqli->close();
?>
(此為Php使用mysqli擴展連接數據庫 的測試腳本)
3 . 重啟http服務。在瀏覽器上打開:http://192.168.60.4/testmysql1.php? (就可以了)
使用pdo擴展連接數據庫的測試代碼1
<?php $dsn=’mysql:host=localhost;dbname=mysql’; $username=’root’; $passwd=’centos’; $dbh=new PDO($dsn,$username,$passwd); var_dump($dbh); ?>
使用pdo擴展連接數據庫的測試代碼2
try { $user=’root’; $pass=‘centos’; $dbh = new PDO(‘mysql:host=localhost;dbname=mysql’, $user, $pass); foreach($dbh->query(‘SELECT user,host from user’) as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print “Error!: ” . $e->getMessage() . “<br/>”; die(); } ?>
實驗布署phpMyadmin ? (一個可以管理數據庫的php模塊的圖形界面)
phpMyadmin下載:https://www.phpmyadmin.net/downloads/
下載phpMyadmin軟件包時要下載和自己本機所裝的php;mysql軟件版本間是否支持
1 . yum -y install httpd mariadb-server php php-mysql ?(安裝包)
systemctl start httpd ?
systemctl start mariadb ? (啟動服務)
2 . 將下載好的源碼包上傳到本機上,然后解壓縮到限定的目錄上去。
unzip phpMyAdmin-4.0.10.20-all-languages.zip ? (解壓在當前目錄下)
mv phpMyAdmin-4.0.10.20-all-languages /var/www/html/pma(剪切到http自己網頁的主頁面下去并且重命名)
3.?/var/www/html/pma (進入到此文件夾下,修改配置文件)
cp config.sample.inc.php config.inc.php ? (將此文件夾下的一個范例的配置文件復制一份來修改,帶sample的文件只是范例文件,不能作為配置文件生效所以要復制過來并去掉sample)
vim config.inc.php
只要將光標出的任意字符,更改一下就可以,可以隨便更改
4 . 打開瀏覽器時發現缺包報錯,再次安裝一個包就可以了。yum install php-mbstring
systemctl restart httpd? (重啟服務)
5 .http://192.168.60.4/pma/ ? (瀏覽器打開如下)
6 . 需要輸入用戶名和密碼需要我們在數據庫里創建(因為是連接數據庫的)
mysql_secure_installation? (跑一下安全腳本)
安全腳本;第一項時輸入以前的口令如果是新安裝的,則不需要輸入回車就可以了
mysql -uroot -pcentos? (設完口令后用密碼和用戶嘗試能否登陸到數據庫里)
7 .?http://192.168.60.4/pma/ 再次登陸輸入口令和root用戶就可以了。
實驗搭建個人博客wordpress
官網:https://cn.wordpress.org/? (源碼地址)
1 ? . yum -y install httpd mariadb-server php php-mysql ?(安裝包)
systemctl start httpd ?
systemctl start mariadb (啟動服務)
2 .? 下載源碼文件;解壓縮WordPress博客程序到網頁站點目錄下 /var/www/html/下
tar xvf wordpress-4.9.4-zh_CN.tar.gz -C /var/www/html/
3 .?/var/www/html/wordpress/? (進到此目錄下找到配置文件并復制一份改名原理同上)
cp wp-config-sample.php wp-config.php
vim wp-config.php
再此之前要進入數據庫創建一個為wordpress的數據庫wpdb
然后再創建一個用戶并授權:grant all on *.* to wpuser@’192.168.60.%’ identified by ‘centos’;
(此用戶為wordpress的用戶)
4 . http://192.168.60.4/wordpress(在瀏覽器上打開界面)
總結:如果打不開需要注意wordpress的權限
CentOS7編譯Php-xcache加速訪問 php程序
官網:http://xcache.lighttpd.net/wiki/ReleaseArchive
1 . yum -y install httpd mariadb-server php php-mysql ?(安裝包)
systemctl start httpd ?
systemctl start mariadb (啟動服務)
2 .?yum install php-xcache ? (安裝加速器)
3 .systemctl restart httpd ? (重啟服務)
###############################################
也可以下載最新的源碼編譯安裝:
yum groupinstall development tools? (安裝編譯包組)
yum install php-devel ? (編譯所缺少的包)
下載并解壓縮xcache-3.2.0.tar.bz2
tar -xvf xcache-3.2.0.tar.gz
cd xcache-3.2.0/
phpize? ( 執行此命令生成編譯環境;就是生成configre文件夾,如果出錯會提示你安裝缺少的包)
./configure –enable-xcache –with-php-config=/usr/bin/php-config
make && make install
ls /usr/lib64/php/modules ?? (查看剛生成的模塊xcache.so)
cp xcache.ini /etc/php.d/ ?? (將此目錄下的配置文件復制到/etc/php.d/ )
systemctl restart httpd ?? (重啟服務就可以了)
上述中的php是附屬在http的模塊的方式連接的,依賴于http服務的模塊不是一個獨立的軟件服務。相對加重了http服務的運行。(區別安裝的包不同一個安裝php包一種安裝php-fpm包)
fastcgi是獨立運行的進程,不依賴于http服務。有自己的默認端口號9000:
fastcgi : php-fpm (既需要php又需要fpm兩個軟件)
php-fpm: ?
CentOS 6:
PHP-5.3.2之前:默認不支持fpm機制;需要自行打補丁并編譯安裝 新版本的php
httpd-2.2:默認不支持fcgi協議,需要自行編譯此模塊 解決方案:編譯安裝httpd-2.4, php-5.3.3+ ?
CentOS 7:
httpd-2.4:rpm包默認編譯支持fcgi模塊 php-fpm包:專用于將php運行于fpm模式
php配置 ? 配置文件:/etc/php.ini,/etc/php.d/*.ini
實驗在centos7上實現LAMP(PHP-FPM模式) 在一臺機器上實現
1 .yum install httpd, php-fpm, php-mysql, mariadb-serv(安裝包)
systemctl start httpd.service systemctl start mariadb.server ice ?(啟動服務)
(由于7上yum裝的http和php包都支持fscgi所以不需要源碼編譯安裝了)
2 . 查看php-fpm的配置文件vim /etc/php-fpm.d/www.conf
3 .systemctl start php-fpm ? (啟動服務)并查看端口號900是否開啟
4 . 在http服務中添加相關的配置:新建文件?/etc/httpd/conf.d/fcgi.conf;添加的內容如下
DirectoryIndex index.php ?
ProxyRequests Off ?
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
5 .?systemctl restart httpd和mariadb? (啟動服務)
注意:在HTTPD服務器上必須啟用proxy_fcgi_module模塊,充當PHP客戶端 ?httpd –M |grep fcgi ?cat /etc/httpd/conf.modules.d/00-proxy.conf
6 .在/var/www/html/新建一個測試文件index.php
<?php
$dsn=’mysql:host=localhost;dbname=mysql’;
$username=’root’;
$passwd=”;
$dbh=new PDO($dsn,$username,$passwd);
var_dump($dbh);
?>
7 (開始測試)http://192.168.60.4/ ? ? 出現object(PDO)#1 (0) { }則表示成功。
測試的php文件要放到第四步所指定的目錄下才可以
實驗在centos7上實現LAMP(PHP-FPM模式) 在多臺臺機器上實現
實驗拓撲圖:192.168.60.20? (此機器作為http)
192.168.60.21(此機器作為php-fpm)
192.168.60.22 (此機器作為mysql)
1 .在192.168.60.20安裝yum install httpd
在192.168.60.21安裝yum install php-fpm 和 yum install php-mysql
在192.168.60.22安裝yum install mariadb-server
2 . 進入數據庫 grant all on *.* to test@’192.168.60.21′ identified by ‘centos’; (建立賬號讓php-fam連接)
3 .?vim /etc/php-fpm.d/www.conf? (修改php-fpm的配置文件)
第一條代表的是綁定本機的IP地址;第二條是只允許本機訪問可以刪掉或者注釋掉因為默認是允許所有主機訪問。
systemctl start php-fpm? (啟動服務;之后查看端口來確認服務是否起來)
4 .在http服務器這邊新建配置文件:vim /etc/httpd/conf.d/fcgi.conf
DirectoryIndex index.php ?
ProxyRequests Off ?
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.60.21:9000/app/www/$1 ? (此IP地址為php-fpm機器的地址.文件訪問路徑也是在php-fpm服務器下,文件夾沒有的話要手工創建)
5 . 在php-fpm機器這邊新建/app/www/文件來來存放測試文件,.php文件必須要放在php-fpm的機器這邊
vim index.php
<?php
$dsn=’mysql:host=192.168.60.22;dbname=mysql’; ?? (IP地址為數據庫的地址)
$username=’tset’; ? ? ? ? (在數據庫創建的用戶)
$passwd=’centos’; ? ? ? ?? (用戶的密碼)
$dbh=new PDO($dsn,$username,$passwd);
var_dump($dbh);
?>
6 . 現在訪問http服務器.他發現是php語句就自動轉到php-fpm服務器上去了,然后再連接查找數據庫。
實驗在centos7上實現LAMP(PHP-FPM模式) 在多臺臺機器上實現編譯安裝wordpress
實驗拓撲圖:在192,168,60,4上實現http和php-fpm的編譯安裝。
在192.168.60.20 上來實現數據庫的編譯安裝。
實驗環境:selinux ;iptables? (都應關閉)
需要編譯三個軟件:apache ;php-fpm;mysql;
編譯的順序:先編譯apache在編譯php-fpm;數據庫先后都無所謂;因為php-fpm對apache以一定的依賴
1 . 編譯安裝apache:和php-fpm(開發環境包組: Development Tools,Server 相關包:pcre-devel,openssl-devel expat-devel)
安裝httpd-2.4 ?依賴于apr-1.4+, apr-util-1.4+
下載源代碼并解壓縮: httpd-2.4.27.tar.bz2 apr-1.6.2.tar.bz2 apr-util-1.6.0.tar.bz2
php的源碼下載:http://php.net/downloads.php ? ?? php-7.1.18.tar.bz2
2 .?mkdir srcs ? (在家目錄下新建文件夾,并將四個源碼包上傳到此文件夾里解壓縮)
3 . ?cd srcs/
tar -xvf httpd-2.4.33.tar.bz2
tar -xvf php-7.1.18.tar.bz2
tar -xvf apr-1.6.3.tar.gz
tar -xvf apr-util-1.6.1.tar.gz ?? (先將四個源碼包解開)
4. 首先編譯安裝http服務。
mv apr-1.6.3 httpd-2.4.33/srclib/apr
mv apr-util-1.6.1 httpd-2.4.33/srclib/apr-util ? (將兩個apr包剪切到http的目錄下)
5 .?cd httpd-2.4.33/ ? (進入到此目錄下開始進行編譯)
mkdir /app (新建一個目錄供編譯安裝時指定路徑)
./configure –prefix=/app/http24 –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
6 .make && make install
7 . .vim /etc/profile.d/httpd24.sh (新建文件存放PATH變量)
PATH=/app/http24/bin:$PATH
. /etc/profile.d/httpd24.sh (讓其生效)
apachectl start (開啟服務)并測試是否可以訪問
8 .編譯二進制數據庫:上傳二進制數據庫包并解開:
tar -xvf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local(此解壓路徑是根據它源碼編譯時指定的路徑,可以到官網上查到)
進入到cd /usr/local目錄下指定軟連接:ln -s mariadb-10.2.15-linux-x86_64/ mysql 指定好了之后。后面的操作就可以使用mysql,而不是要寫mariadb-10.2.15-linux-x86_64/一長串了。
9 .創建數據庫的用戶賬號:?useradd -r -s /sbin/nologin mysql
cd? /usr/local/
chown -R? root.root? mysql/ ?? (更改數據目錄的所有者)
10 mkdir /data/mysql -pv ? (創建數據庫目錄存放數據庫的數據)
chown mysql.mysql /data/mysql/? (并將所有者和所有組更改為mysql所有)
11 .vim /etc/profile.d/lamp.sh
PATH=/appl/httpd24/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
. /etc/profile.d/lamp.sh ? ? ? (修改PATH變量路徑并讓其生效)
12 .cd? /usr/local/mysql
/scripts/mysql_install_db –datadir=/data/mysql –user=mysql ? (生成數據庫倉庫的必要配置文件)
13 .cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf (將二進制程序里的模板文件復制到mysql的配置文件下修改)
vim /etc/my.cnf
添加:datadir=/data/mysql ? (指定倉庫路徑)
14 . 啟動服務:(將二進制程序里的啟動腳本復制出來,到init.d里使其變成服務腳本)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig –add mysqld(將服務腳本加到啟動程序里)
可以通過chkconfig –list 來查看是否添加到啟動程序里了。
手動開啟服務即可:service mysqld start (如果起不來直接啟程序;./mysqld start )
15 .進入數據庫中創建庫給wordpress用,并創建授權用戶:
mysql >create database wpdb;
mysql >grant all on wpdb.* to wpuser@’192.168.30.%’ identified by ‘centos’;
16? .編譯php ;(安裝編譯所需要的包yum install libxml2-devel bzip2-devel libmcrypt-devel)
cd? /root/srcs/php-7.1.18
./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 \
–enable-fpm \
–with-config-file-path=/etc \
–with-config-file-scan-dir=/etc/php.d \
–enable-maintainer-zts \
–disable-fileinfo
結束標志。
make && make install
vim /etc/profile.d/httpd24.sh (添加PATH變量)
PATH=/app/php/bin:/app/php/sbin:/app/http24/bin:$PATH
.? /etc/profile.d/httpd24.sh (使環境變量生效)
17 .?cd /root/srcs/php-7.1.18/
cp php.ini-production /etc/php.ini ? (復制模板配置文件)
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm?(將二進制程序里的啟動腳本復制出來,到init.d里使其變成服務腳本)
chmod +x /etc/init.d/php-fpm? (給php腳本添加執行權限)
chkconfig –add php-fpm ? ??(將服務腳本加到啟動程序里)
chkconfig php-fpm on
cd /app/php/etc
cp php-fpm.conf.default php-fpm.conf ? (把文件改名讓其生效)
cp php-fpm.d/www.conf.default php-fpm.d/www.conf ? (將文件改名讓其生效)
service php-fpm start
ss -nult (查看端口)
18 .配置apache的配置文件:
vim /app/http24/conf/httpd.conf
取消下面兩行的注釋
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html
在文件最后添加
</IfModule>
addType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/http24/htdocs/$1
apachectl stop
apachectl start ? (服務停了重啟讓其配置文件生效)
wordpress的配置實現:
tar -xvf wordpress-4.9.4-zh_CN.tar.gz -C /app/http24/htdocs/(將wordpress解壓到http指定的主頁目錄下)
/app/http24/htdocs/wordpress/? (進入到此目錄下)
cp wp-config-sample.php wp-config.php? (復制模板文件)
vim wp-config.php ? (修改配置文件)
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/101377