在Linux(centos)下,安裝Apache和PHP環境


 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 .php

3.

原本是打算添加 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 
若能顯示出項目的網頁內容,則一切正常

這里寫圖片描述


免責聲明!

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



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