安裝php以前,要先安裝幾個php
1.下載php源碼:http://cn2.php.net/distributions/php-7.0.6.tar.gz。html
2.而後使用命令:tar -zxvf php-7.0.6.tar.gz,進行解壓。mysql
3.使用php時還要先安裝幾個其餘的東西,不然安裝會出錯,或者不生成php.so擴展文件,web
先從ftp://xmlsoft.org/libxml2/libxml2-2.7.2.tar.gz下載這個插件,注意不要下載最新版本除非須要,版本越新須要的依賴越多,下載完成後使用tar解壓,sql
執行1../configure,2.make,3.make install ,三個命令來編譯安裝這個東西。服務器
而後檢查是否安裝了httpd_devel,若是沒有安裝,執行yum install httpd-devel,進行安裝,若是不安裝的話,後期不會生成.so的擴展文件。session
4.進入解壓完的php文件,而後根據本身的須要,來配置./configure的參數php7
./configure \
--prefix=/usr/local/php7 \
--exec-prefix=/usr/local/php7 \
--bindir=/usr/local/php7/bin \
--sbindir=/usr/local/php7/sbin \
--includedir=/usr/local/php7/include \
--libdir=/usr/local/php7/lib/php \
--mandir=/usr/local/php7/php/man \
--with-config-file-path=/usr/local/php7/etc \
--with-mysql-sock=/var/run/mysql/mysql.sock \
--with-mcrypt=/usr/include \
--with-mhash \
--with-openssl \
--with-pdo-mysql=shared,mysqlnd \
--with-mysqli=shared,mysqlnd \
--with-pdo-mysql=shared,mysqlnd \
--with-gd \
--with-iconv \
--with-zlib \
--enable-zip \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-fpm \
--without-gdbm \
--enable-opcache=no \
--disable-fileinfoapp
注意,每一個參數均可能會有依賴,好比:--with-zlib \ --enable-zip,是須要事先安裝對應文件的,若是不須要,能夠不指定對應參數,最好指定的編譯參數是:--prefix --with-mysqli --with-apxs2 。curl
編譯完成若是麼有錯誤,那就執行 make && make install .若是報錯,看是不是缺乏什麼依賴,在從新編譯前,先執行:make clean,不然可能會產生錯誤,錯誤信息:***lo' is not a valid libtool object。
5.複製配置文件:php的推薦配置文件,已經存在於源碼文件中了,使用find命令查找一下,通常是兩個:php.ini-production,php.ini-development,至於將那個當配置使用,就看本身的了。
6.根據安裝位置,將對應的php文件位置添加到PATH中,文件位置:/etc/profile,在最後添加:
PATH=$PATH:/usr/local/webserver/php/bin:/usr/local/webserver/mysql/bin -- 注意添加的不是php可執行的自己,而是上一級目錄,不然不能使用,
export PATH
最後執行source /etc/profile 從新加載配置文件,而後echo $PATH,來看路徑是否添加進了環境變量。
7.以上修改完畢以後應該是已經能夠在本地執行php文件了,若是不能,則是有問題,要查看是php文件,仍是path路徑配置問題。
8.配置httpd.conf文件,
在配置文件中搜素: AddType 關鍵字,在其後面追加下面三行,若是不追加,httpd會直接打印php文件內容,不會調用php執行。
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps
接下來添加默認搜索php文件,在配置文件中查找DirectoryIndex 關鍵字,若是後面沒有index.php,就在後面追加index.php,這樣httpd才能默認訪問php文件
接下來添加對php的支持,搜索LoadModule關鍵字,添加:LoadModule php7_module modules/libphp7.so,若是後期出現不能加載libphp7.so,則表示php編譯有問題,最大可能就是沒添加--with-apxs2參數,或者設置錯誤,須要重編php源碼文件,直到能 在系統內搜索到libphp7.so爲止。
在httpd.conf內最好手動執行php的配置文件位置,方式爲PHPIniDir "/usr/local/php7/bin",這樣能保證重啓httpd服務的時候,從新裝載對的php配置。
以上完成以後應該是配置完畢,找到index.html正確位置,添加index.php文件並將其餘命名爲index的文件改爲其餘名字,不然默認不會加載index.php,在index.php中添加代碼
<?php phpinfo(); ?>
而後重啓httpd服務器,使用IP訪問測試,若是不行,先檢查防火牆是否關閉,或者開放了指定的端口。
測試端口是否打開:firewall-cmd --query-port=80/tcp
打開指定端口:firewall-cmd --add-port=80/tcp
或者直接關閉防火牆:
systemctl start firewalld.service#啓動firewall
systemctl stop firewalld.service#中止firewall
systemctl disable firewalld.service#禁止firewall開機啓動
編譯過程當中可能出現的錯誤和解決辦法:
運行以後遇到的問題:
error 1
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.
(看提示就明白 是一個lib庫沒裝 先用 yum search 名字 看是否能搜到名字 ,找到名字後 把軟件包 開發包裝上)
解決辦法
yum install libxml2-devel.x86_64
error 2
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>
這是ssl沒裝
解決辦法
yum install openssl.x86_64 openssl-devel.x86_64 -y
error 3
checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution
這是bzip2軟件包沒有安裝
解決辦法
yum install bzip2-devel.x86_64 -y
error 4
configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
curl和curl庫文件沒有安裝
解決辦法
yum install libcurl.x86_64 libcurl-devel.x86_64 -y
error 5
checking whether to enable JIS-mapped Japanese font support in GD... no
checking for fabsf... yes
checking for floorf... yes
configure: error: jpeglib.h not found
GD庫沒有安裝
解決辦法
yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y
error 6
checking for stdarg.h... (cached) yes
checking for mcrypt support... yes
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
libmcrypt庫沒有安裝 ,要是不能用yun安裝的話 就要去下載個gz包 本身編譯安裝
(編譯安裝 ./configure --piefix=/usr/local/libmcrypt make && make install)
要是錯誤裏面含有mysql的 那是mysql-devel 沒有安裝