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

 1001  ll /opt/lampp/modules/php

 1002  history | grep httpdcss

 1003  vim /etc/httpd/conf/httpd.conf html

 1004  vim /etc/httpd/conf/httpd.confweb

 1005  history | grep httpdsql

 1006  service httpd restartapache

 1007  history vim

[root@iZ2834y8cmdZ ~]# centos

 

修改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、上述第1步,epel-release的地址,極容易失效,產生404錯誤。

如下是獲取最新的 .rpm 文件的方法:

參見這篇文章 在CentOS上安裝第三方軟件庫EPEL

其中有這樣一句提示:

一、要安裝最新版本的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 
若能顯示出項目的網頁內容,則一切正常

這裏寫圖片描述

相關文章
相關標籤/搜索