Linux 6下yum方式安裝配置LAMP平臺

 

問題:在搭建環境的最好時時刻出現下面的錯誤,搞了半天當時就蒙了,但要相信好事多磨,,重啓apache提示找不到libphp5-zts的模塊,iptables也查了,selinux也設置了都不見解決

[root@www html]# service httpd start

正在啓動 httpd:httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Syntax error on line 9 of /etc/httpd/conf.d/php.conf: Cannot load /etc/httpd/modules/libphp5-zts.so into server: /etc/httpd/modules/libphp5-zts.so: cannot open shared object file: No such file or directory

 

 

 
二、安裝apache httpd

詳細可以參考:Linux下安裝Apache httpd

###檢查是否已安裝httpd
# rpm -qa|grep httpd
httpd-tools-2.2.15-45.el6.centos.x86_64
httpd-2.2.15-45.el6.centos.x86_64
# yum -y install httpd ###此時我們看到httpd的小版本從45變成了53
# rpm -qa|grep httpd
httpd-tools-2.2.15-53.el6.centos.x86_64
httpd-2.2.15-53.el6.centos.x86_64
###查詢生成的相關配置文件
# rpm -qc httpd|grep conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd
###啓動httpd
# /etc/init.d/httpd start
Starting httpd: [ OK ]
# netstat -nltp|grep 80
tcp 0 0 :::80 :::* LISTEN 7621/httpd
###驗證web服務
HTTP/1.1 403 Forbidden
Date: Tue, 12 Jul 2016 09:25:15 GMT
Server: Apache/2.2.15 (CentOS)
Accept-Ranges: bytes
Content-Length: 4961
Connection: close
Content-Type: text/html; charset=gbk
###編寫一個php頁面測試
# echo "
> <html>
> <h1>This is a php test page.</h1>
> <?php
> phpinfo();
> ?>
> </html>">>/var/www/html/index.php
###測試結果爲phpinfo函數沒有被解釋
<html>
<h1>This is a php test page.</h1>
<?php
phpinfo();
?>
</html>
三、安裝php ###安裝php,同時會安裝依賴包
# yum install php
Installing:
php x86_64 5.3.3-47.el6 base 1.1 M
Installing for dependencies:
php-cli x86_64 5.3.3-47.el6 base 2.2 M
php-common x86_64 5.3.3-47.el6 base 530 k
###查看php安裝清單
# rpm -ql php
/etc/httpd/conf.d/php.conf
/usr/lib64/httpd/modules/libphp5.so
/var/lib/php/session
/var/www/icons/php.gif
###查看php的配置文件
# grep -vE "^#|^$" /etc/httpd/conf.d/php.conf
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php
###在上面的配置文件中,由於php以模塊化方式與httpd結合工作,根據httpd的mpm模式不同,
###其所需要的php模塊格式有所不同; prefork模式使用libphp5模塊 worker和event模式則使用libphp5-zts模塊
###重啓httpd已使得php模塊生效
# /etc/init.d/httpd configtest
Syntax OK
# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
###驗證php模塊已經被加載
# httpd -M |grep php
php5_module (shared)
###驗證php頁面
<html>
<h1>This is a php test page.</h1>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
...........
###切換爲使用worker工作模式 用了sed來實現其實可以直接編輯配置文件,見前一篇博客有
# cp /etc/sysconfig/httpd /etc/sysconfig/httpd.bk
# sed -i "s@#HTTPD=/usr/sbin/httpd.worker@HTTPD=/usr/sbin/httpd.worker@g" /etc/sysconfig/httpd
# grep -vE "^#|^$" /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker
###從下面的提示中,我們需要使用php5zts模塊
# /etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd.worker: Syntax error on line 221 of /etc/httpd/conf/httpd.conf:
Syntax error on line 9 of /etc/httpd/conf.d/php.conf: Cannot load /etc/httpd/modules/libphp5-zts.so
into server: /etc/httpd/modules/libphp5-zts.so: cannot open shared object file: No such file or directory
[FAILED]
###安裝php-zts模塊
# yum -y install php-zts
# rpm -ql php-zts
/usr/lib64/httpd/modules/libphp5-zts.so    #這裏需要安裝該模塊就可以解決上述的問題
# ps -ef|grep http ###查看httpd,已經切換爲使用worker模式

root 10339 1 0 04:35 ? 00:00:00 /usr/sbin/httpd.worker
apache 10341 10339 0 04:35 ? 00:00:00 /usr/sbin/httpd.worker
apache 10342 10339 0 04:35 ? 00:00:00 /usr/sbin/httpd.worker
apache 10343 10339 0 04:35 ? 00:00:00 /usr/sbin/httpd.worker
apache 10344 10339 0 04:35 ? 00:00:00 /usr/sbin/httpd.worker
四、安裝mysql # rpm -qa|grep mysql
mysql-libs-5.1.73-5.el6_6.x86_64
# yum install mysql-server
# rpm -qa|grep mysql
mysql-5.1.73-7.el6.x86_64
mysql-libs-5.1.73-7.el6.x86_64
mysql-server-5.1.73-7.el6.x86_64
###查看mysql安裝產生的文件
# rpm -ql mysql-server
# rpm -ql mysql
# more /etc/f
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# /etc/init.d/mysqld start
# /usr/bin/mysqladmin -u root password '***'
# mysql -uroot -p
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+-------+
###安裝php連接mysql驅動
# yum install php-mysql
###查看安裝完畢後生產的文件
# rpm -ql php-mysql
/etc/php.d/mysql.ini ### Author : Leshami
/etc/php.d/pdo_mysql.ini
/usr/lib64/php/modules/mysql.so
/usr/lib64/php/modules/mysqli.so
/usr/lib64/php/modules/pdo_mysql.so
###測試到mysql的連接
#vim /var/www/html/connmysql.php
<?php
$conn = mysql_connect('127.0.0.1','root','***');
if ($conn)
echo "succ";
else
echo "failure";
mysql_close();
?>
succ
五、小結

1、apache httpd與php之間的銜接是通過模塊化的方式來實現。

2、對於perfork模式使用libphp5模塊,worker和event模式則使用libphp5-zts模塊。

3、php與mysql則通過安裝php-mysql包來實現php到mysql的訪問。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章