1. 程式人生 > >linux下PHP7環境搭建

linux下PHP7環境搭建

LAMP環境版本

  • 作業系統:Centos 7
  • Mysql:5.7.11
  • Apache:2.4.18
  • PHP:7.0.4

安裝Mysql

為mysql建立專屬帳號

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql

原始碼編譯安裝

shell> tar zxvf mysql-5.7.11.tar.gz
shell> cd mysql-5.7.11
shell> cmake .
shell> make
shell> make install

安裝後設置

注意:從Mysql5.7開始,mysql預設安裝後不再是空密碼,而是生成一個隨機密碼,除非初始化時指定--initialize-insecure。 所有使用者擁有對於MySQL預設安裝test資料庫的訪問許可權(即使沒有授予許可權)為了安全考慮5.7版本中不在有test資料庫。 更為重要的是,MySQL 5.7版本提供了更為簡單SSL安全訪問配置,並且預設連線就採用SSL的加密方式
shell> cd /usr/local/mysql
shell> chown -R mysql .  #修改目錄所有者為mysql
shell> chgrp -R mysql .  #修改目錄所屬組為mysql
shell> bin/mysqld --initialize-insecure --user=mysql --datadir=/data/mysql  #初始化mysql,初始化為空,資料庫存放目錄指定為/data/mysql
shell> bin/mysql_ssl_rsa_setup #啟動ssl加密方式連線
shell> chown -R root .   #修改目錄所有者為root
shell> chown -R mysql /data/mysql  #修改資料庫目錄所有者為mysql

安裝mysql服務

只需要將mysql安裝目錄下的mysql.server複製過去就OK了。
shell> cp support-files/mysql.server /etc/init.d/mysql.server
shell> service mysql start   #啟動服務


安裝Apache

原始碼編譯安裝

shell> ./configure --prefix=/usr/local/apahche \
--enable-so #動態共享物件,可實現模組動態生效 \
--enable-rewrite #啟用Rewrite功能 \
--enable-ssl #支援SSL/TLS,可以實現https訪問 \
--enable-deflate #支援壓縮 \
shell> make
shell> make install


apache的啟動與關閉

shell> /usr/local/apache/bin/apachectl start    #啟動
shell> /usr/local/apache/bin/apachectl stop     #停止
shell> /usr/local/apache/bin/apachectl restart  #重啟

將apache新增到Linux的服務並設定自啟動

shell> cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd   #設定為系統服務
shell> ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S80httpd   #在啟動級別3中自啟動
shell> service httpd restart   #通過服務來重啟apache

執行測試頁面

在客戶端瀏覽器上輸入伺服器的IP地址,看是否能正常開啟網頁。

常見問題

  • configure: error: APR not found. 解決方法: 安裝對應依賴庫
    shell> yum install apr apr-util-devel
  • configure: error: pcre-config for libpcre not found. 解決方法:安裝對應依賴庫
    yum install pcre pcre-devel
  • 啟動apache時報:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 10.44.13.173. Set the 'ServerName' directive globally to suppress this message 解決方法:修改配置檔案httpd.conf設定ServerName localhost:80

安裝PHP

安裝依賴庫

  • zlib
    shell> tar xf zlib.1.2.8.tar.gz
    shell> cd zlib.1.2.8
    shell> ./configure
    shell> make test
    shell> make install

  • GD庫 libpng
    shell> tar xf libpng-1.6.21
    shell> cd libpng-1.6.21
    shell> ./configure --prefix=/usr/local/libpng
    shell> make
    shell> make check
    shell> make install

    jpeg
    shell> tar xf jpegsrc.v9.tar.gz
    shell> cd jpeg-9
    shell> ./configure --prefix=/usr/local/libjpeg
    shell> make
    shell> make install

  • libcurl-devel
    yum install libcurl-devel

  • openssl-devel
    yum install openssl-devel


  • libxslt-devel
    yum install libxslt-devel


  • libxml2-devel
    yum install libxml2-devel


  • freetype 字型操作庫
    shell> tar xf freetype-2.6.3.tar.bz2
    shell> sh autogen.sh
    shell> ./configure --prefix=/usr/local/freetype
    shell> make
    shell> make install


編譯安裝PHP

./configure --prefix=/usr/local/php \
 --with-apxs2=/usr/local/apache/bin/apxs \
 --with-curl \
 --with-freetype-dir=/usr/local/freetype \
 --with-gd \
 --with-gettext \
 --with-iconv-dir \
 --with-mysqli \
 --with-openssl \
 --with-pcre-regex \
 --with-pdo-mysql \
 --with-pdo-sqlite \
 --with-pear \
 --with-png-dir=/usr/local/libpng \
 --with-jpeg-dir=/usr/local/libjpeg \
 --with-xsl \
 --with-zlib \
 --enable-fpm \
 --enable-bcmath \
 --enable-libxml \
 --enable-inline-optimization \
 --enable-gd-native-ttf \
 --enable-mbregex \
 --enable-mbstring \
 --enable-opcache \
 --enable-pcntl \
 --enable-shmop \
 --enable-soap \
 --enable-sockets \
 --enable-sysvsem \
 --enable-xml \
 --enable-zip

shell> make
shell> make install
Apache與PHP的關聯 PHP安裝成功後會在apache的modules目錄下生成一個libphp.so動態庫檔案,在apache的配置檔案httpd.conf裡自動增加一行
LoadModule php7_module        modules/libphp7.so
在Apache的配置檔案httpd.conf的<IfModule mime_module></IfModule>塊裡增加一行
AddType application/x-httpd-php .php
在網站要目錄/usr/local/htdocs裡增加一個index.php測試檔案內容如下:
<?php
phpinfo();
然後我們執行此檔案,如果輸出了phpinfo資訊,證明我們安裝成功。