前言php
已經好久沒寫php代碼了,之前是先後端都折騰,畢業入職之後就只是單純寫前端了前端
恰好前不久在nitrous上建了一個測試帳戶(ubuntu環境),因而就打算部署個Laravel玩玩,一個很火的php框架mysql
因而乎,是的,我又得折騰一遍LAMP了(生無可戀臉...)linux
nitrous上本來是已經部署好了apache2和php5的,但是php5的版本是5.5.9,而Laravel對php版本的最低要求是>=5.6.4sql
因此,蛋疼了,得從新裝php了,更悲劇的是用自帶的apt-get是沒法安裝特定版本的,軟件源是什麼版本就只能什麼版本apache
所以,無路可走,只能選擇源碼編譯安裝的方式了,在這條路上個人折騰之旅是醬紫的:ubuntu
1. 手動安裝了php5.6.26,但是系統自帶的apache2仍是默認配置了原來的php5.5.9vim
2. 卸載了自帶的php5.5.9,但是不管怎麼配置apache2仍是沒法與手動安裝的php5.6.26配合後端
3. 因而索性把自帶的apache2和php5.5.9所有卸載掉centos
4. 手動安裝配置apache2和php5.6.26
另外,須要注意的一點是,編譯php時,儘可能把要用到的擴展模塊全都一塊兒編譯好,否則之後各類模塊缺失折騰死你
補充1:全部操做以前,最好先執行一下: sudo apt-get update
正文
下面正式介紹安裝編譯步驟:
1.安裝apache2
前提:下載好 httpd-xxx.tar.gz, apr-xxx.tar.gz, apr-util-xxx.tar.gz, pcre-xxx.tar.gz (xxx是相應版本,看你需求)
1.1 安裝apr
sudo tar -xzvf apr-xxx.tar.gz
cd apr-xxx
sudo apt-get install libtool
sudo ./configure --prefix=/usr/local/installed/apr-x.x.x
sudo make
sudo make install
1.2 安裝apr-util
sudo tar -xzvf apr-util-xxx.tar.gz
cd apr-util-xxx
sudo ./configure --prefix=/usr/local/installed/apr-util-x-x-x --with-apr=/usr/local/installed/apr-x-x-x
sudo make
sudo make install
1.3 安裝pcre
sudo tar -xzvf pcre-xxx.tar.gz
cd pcre-xxx
sudo ./configure --prefix=/usr/local/pcre
sudo make
sudo make install
1.4 安裝httpd
sudo tar -xzvf httpd-xxx.tar.gz
cd httpd-xxx
sudo ./configure --prefix=/usr/local/installed/httpd-2.4.25 --sysconfdir=/etc/httpd --with-include-apr --disable-userdir --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support --with-apr=/usr/local/installed/apr-1.5.2 --with-apr-util=/usr/local/installed/apr-util-1.5.4 --with-pcre=/usr/local/installed/pcre-8.40 --enable-module=shared
sudo make
sudo make install
1.5 配置apache2
apache2的配置主要是網站目錄和端口的配置,以及php的配置
1.5.1 網站目錄和端口的配置
上面安裝的時候咱們的配置路徑設在了/etc/httpd/,cd到該目錄下,執行
sudo vim httpd.conf
分別修改
1. ServerName 127.0.0.1
2.
<Directory />
#AllowOverride none
#Require all denied
AllowOverride all
Require all granted
</Directory>
3.
DocumentRoot "/usr/local/apache2/htdocs"
4.
<Directory "/usr/local/apache2/htdocs">
AllowOverride All
</Directory >
5.
Include /etc/httpd/extra/httpd-vhosts.conf
1.5.2 php配置
待續
注:以上路徑根據本身需求更改
2. 安裝php
前提:下載好php-5.6.26.tar.gz
2.1 安裝libpng12
sudo apt-get -y install libpng12-dev
2.2 安裝libjpeg
sudo apt-get -y install libjpeg-dev
2.3 安裝freetype6
sudo apt-get -y install libfreetype6-dev
2.4 安裝libxml2
sudo apt-get -y install libxml2-dev
2.5 安裝php
sudo tar -xzvf php-5.6.26.tar.gz
cd php-5.6.26
sudo ./configure \
--prefix=/usr/local/installed/php/5.6.29 \
--with-config-file-path=/usr/local/installed/php/5.6.29/etc \
--enable-mbstring \
--enable-ftp \
--enable-sockets \
--enable-gd-native-ttf \
--enable-zip \
--enable-fpm \
--enable-fpm \
--enable-xml \
--enable-sockets \
--enable-soap \
--enable-pcntl \
--enable-cli \
--with-iconv \
--with-freetype-dir=/usr/lib/ \
--with-gmp \
--with-mcrypt \
--with-curl \
--with-zlib \
--with-libxml-dir=/usr \
--with-xmlrpc \
--with-freetype-dir=/usr \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-openssl-dir=/usr \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--with-pear
sudo make
sudo make install
2.6 配置php-fpm
在php源碼目錄
sudo cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
sudo chmod +x /etc/init.d/php-fpm
接着
cd /usr/local/php/etc/
sudo cp php-fpm.conf.default php-fpm.conf
sudo mv php-fpm.conf.default php-fpm.conf.default.bak
編輯配置文件
sudo vim php-fpm.conf
將;pid = run/php-fpm.pid前面的分號去掉
將
user = nobody
group = nobody
中的nobody改成你本身的用戶名和用戶組
保存退出
啓動php-fpm
sudo /etc/init.d/php-fpm start
2.7 php配置
定位到原來php源碼目錄
sudo cp -f php.ini-production /etc/php/php.ini
添加權限
sudo chmod 644 /etc/php/php.ini
2.8 將php命令連接到系統路徑中
sudo cp /usr/local/php/bin/php /usr/bin/php
2.9 執行php -i 查看php信息
3.安裝MySQL
待續
4. 安裝Laravel
待續
5.結尾
常見錯誤
1.安裝php時出現,configure: error: Cannot find OpenSSL's libraries
解決參見:http://linuxzj.blog.51cto.com/6160158/1632132
參考:
http://sunrising.blog.51cto.com/10729461/1722199
https://www.insp.top/compile-and-install-apache24-and-php56-on-centos