1001 ll /opt/lampp/modules/
1002 history | grep httpd
1003 vim /etc/httpd/conf/httpd.conf
1004 vim /etc/httpd/conf/httpd.conf
1005 history | grep httpd
1006 service httpd restart
1007 history
[root@iZ2834y8cmdZ ~]#
修改Apache的配置文件httpd.conf
1.
鍵:DirectoryIndex
值:index.html index.php
#注釋:添加index.php
2.
找到配置文件中已有的這兩項:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在這兩項下方,添加如下支持內容:
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
3.
原本是打算添加 libphp5.so 模塊,因 PHP 已升級到 7 ,遂作罷。
LoadModule php5_module modules/libphp5.so (已過時)
4.
編寫測試文件index.php內容如下
<?php
phpinfo();
?>
1.Apache安裝
# yum install httpd (centos之下,Apache的名字叫httpd,和Apache的主程序 httpd.exe 同名)
- 1
2.打開並測試Apache
(1)先確保,雲服務器的80端口,是允許外網訪問的。
(2)開啟Apache服務
# service httpd start (centos之下,Apache的名字叫httpd,和Apache的主程序 httpd.exe 同名)
- 1
(3)測試Apache是否正常運行
瀏覽器輸入: 外網IP : 80
如果能正常顯示 Apache 的內置主頁,則說明Apache服務已正常開啟。
- 1
- 2
- 3
3.安裝 PHP 7.0
參照以下兩篇文章:
(1)在centos7通過yum安裝PHP7
(2)Centos7 安裝 PHP7最新版
步驟都是大同小異的
我們這里統一采用 RPM + YUM 模式,進行 PHP 7 的安裝:
1.因為此處安裝需要epel-release作為前提條件,所以
先安裝epel-release
:
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm (該地址可能失效。若失效,如404錯誤,參照下面加粗字部分,提供的解決辦法。)
- 1
2.安裝PHP7的rpm源:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- 1
3.安裝PHP7:
yum install php70w
- 1
需要注意的點:
一、上述第1步,epel-release的地址,極容易失效,產生404錯誤。
以下是獲取最新的 .rpm 文件的方法:
參見這篇文章 在CentOS上安裝第三方軟件庫EPEL
其中有這樣一句提示:
1、要安裝最新版本的EPEL,請前往 http://mirrors.ustc.edu.cn/fedora/epel/ 中查找最新版本的URL地址
最后得到的有效 .rpm 的URL是:
http://mirrors.ustc.edu.cn/epel/epel-release-latest-7.noarch.rpm (2017年10月12日 親測有效)
4.按照第3步操作完畢后,測試 PHP 7 是否正常
# php -v
- 1
- 2
- 3
如果能夠正常顯示版本信息,則說明已經安裝成功。
如:
PHP 7.0.23 (cli) (built: Sep 16 2017 12:47:01)( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
- 1
- 2
- 3
5.配置Apache兼容PHP
參考這兩篇文章:
老一點的版本:Linux下apache支持PHP配置
新一點的版本:Linux安裝Apache 2.4 + PHP 7 + Mysql筆記
前面一篇是 PHP 5.6 的,但是比較經典。
后面一篇是 PHP 7.0 的,有一些新方法加進去。
步驟:
從PHP5.6中采納的步驟
修改Apache的配置文件httpd.conf
1.
鍵:DirectoryIndex
值:index.html index.php#注釋:添加index.php
2.
找到配置文件中已有的這兩項:AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz在這兩項下方,添加如下支持內容:
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php3.
原本是打算添加 libphp5.so 模塊,因 PHP 已升級到 7 ,遂作罷。
LoadModule php5_module modules/libphp5.so(已過時)4.
編寫測試文件index.php內容如下
<?php phpinfo(); ?>
- 1
- 2
- 3
然后
放至Apache的默認的Web站點目錄DocumentRoot
之下#注釋:默認路徑為,/var/www/html
從PHP 7 中采納的步驟
1.
添加最新的 libphp7.so 模塊:
LoadModule php7_module modules/libphp7.so
- 1
(附注,也可以統一寫到 /etc/httpd/conf.module.d/00-base.conf 里面,進行統一管理。)
2.
結尾處,添加 .php 文件支持 (該功能似乎與
PHP 5.6
的第2步重復,但卻是不沖突)
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
- 1
- 2
- 3
可能出現的問題:
修改配置后,Apache發生故障,啟動不了了
可以參見下面這篇文章,講的非常詳細
解決apache啟動失敗:Job for httpd.service failed.
http://blog.csdn.net/ironali/article/details/45228699
①那篇文章,也提到了一個,萬能的Apache調試方法
service httpd start
然后彈出這樣提示: Job for httpd.servicefailed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
此時只要按照提示,輸入
systemctl status httpd.service
就可以獲知,詳細的出錯原因,
比如: line 56 : LoadModule takes two arguments, a module name and the name of a shared object file to load it from
(提示,LoadModule這里,參數列表發生了錯誤)
②但是,仍然有一個天坑般的存在!
每一次修改后,嘗試重新調試,是不能直接輸入systemctl status httpd.service
看結果的。
必須要:
先
service httpd start
再 systemctl status httpd.service
完整的走一遍,報錯消息才會更新!!!
我一直傻乎乎的只用 systemctl status httpd.service
,浪費了近一個小時時間!
③另外,值得注意的是,不要在httpd.conf的一行配置后面,加 # 注釋
,很容易被程序理解為是最后一個新參數
④四大新手必須防范的坑!:
1. 如同②所講的,
systemctl
命令————>有着極大的顯示延遲(或者是,只是回顯Log調試記錄)。所以,必須要service httpd start
來進行刷新。刷新之后,重新systemctl
才能解決這一問題!
2. PHP 5.6 的安裝攻略,和 PHP 7 的安裝攻略——————>在兩份攻略合並時的問題,必須要小心。——————>但是實際上兩者很兼容???
3. 存在一個神奇的文件夾
conf.module.d/
,所有的LoadModule xy.so
都可以統一放在這個文件夾下。
因為/etc/httpd/conf/httpd.conf
這個配置文件,會Include conf.module.d/*.conf
進行統一一鍵加載。
當然,直接在/etc/httpd/conf/httpd.conf
這個配置文件里,一個個LoadModule za.conf
也是可以的。(效果等同,而且 Apache啟動時,會自動處理重復的LoadModule 同名so
)
4. 切記切記!!!
httpd.conf
這個文件,最好最好甚至說絕對不要在句尾寫# 注釋
!,
注釋,最好是全部另起一行!
不然,很容易被當作最后一個參數(空格作祟)
6.進入Apache服務器端口下的測試頁 phpinfo.php ,一切顯示正常!
恭喜!
7.手動,將本地項目的文件夾,復制或移動到 /var/www/html 下
# mv /root/my /var/www/html
- 1
- 2
- 3
瀏覽器輸入: 120.xx.136.147/my
若能顯示出項目的網頁內容,則一切正常