今天看到鳥哥發微博說php7 beta1測試版發佈了,因而趕忙就去搶先下載,把本身的開發環境也升級到PHP7去,話很少少,下面就一塊兒來搞起吧。。。php
這裏因爲我是在mac上安裝,因此就去下載linux相關的版本,地址也直接附上了
php7 beta1
windows版的官方也有發佈詳情猛戳:這裏html
tar -zxvf php-7.0.0beta1.tar.gz cd php-7.0.0beta1
./buildconf --force ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/sbin/apxs --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
這裏列出如下我編譯過程遇到的錯誤和解決辦法:mysql
configure: error: Cannot locate header file libintl.h
linux
安裝 gettextsql
sudo brew install gettextapache
編輯 configure 文件,找到 $PHP_GETTEXT /usr/local /usr 在後面加上gettext的路徑 $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettextvim
從新配置便可【後面參數和上面同樣,這裏省略了】windows
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
瀏覽器
sudo brew install mcrypt libmcryptphp7
再次從新configure便可。。。
我這裏多是由於以前就裝過php7 alpha版本,因此錯誤會少一點,不過你們過程當中有什麼錯誤的話,直接貼出來你們一塊兒研究了。
make # Generating phar.php Generating phar.phar PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled. clicommand.inc directorygraphiterator.inc directorytreeiterator.inc invertedregexiterator.inc pharcommand.inc phar.inc Build complete. Don't forget to run 'make test'. #
這裏會持續一段時間,通常是不會出現什麼錯誤的,除非你人品的問題了。。。
sudo make install
上面的步驟都順利的話,這一步作起來就是那麼的簡單了,可是安裝過程的信息要記得留意一下,後面配置會須要。。。
/usr/local/php7/bin7 -v #爲了之後事業方便,直接替換系統默認的php命令 #當人你也能夠備份一下,我這裏直接覆蓋算求了。。。 sudo cp /usr/local/php7/bin/ph* /usr/bin/
毫無違和感,運行的如此流暢,哈哈!
打開apache的配置文件httpd.conf
,找到原來的LoadModule php5_module
這裏,直接註釋掉,下面加入LoadModule php7_module /usr/libexec/apache2/libphp7.so
,最後以下:
sudo vim /etc/apache2/httpd.conf ... #LoadModule php5_module libexec/apache2/libphp5.so LoadModule php7_module /usr/libexec/apache2/libphp7.so ...
驚奇的發現,php文件直接輸出到瀏覽器了。。。
感受是apache不知道要解析php文件了!!!
這裏我排查了很久,發現切換成php5版本就沒問題,php7就沒法解析???
最後才發現apache在解析php的適合是判斷了模塊的,例如ifModule php5_module
這樣,在httpd.conf裏面找到這一句:Include /private/etc/apache2/other/*.conf
,進入到該目錄一看,你就明白了...
裏面有一個php5.conf文件,那是否是php7的就該對應一個php7的文件呢,因而趕忙複製一份,打開這個文件,看到相似php5_module
的字樣,直接替換成php7_module
便可,相關內容以下:
#httpd.conf改動 ... <IfModule php5_module> Include /private/etc/apache2/other/php5.conf </IfModule> <IfModule php7_module> Include /private/etc/apache2/other/php7.conf </IfModule> #Include /private/etc/apache2/other/*.conf ... #php7.conf內容 <IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> </IfModule>
sudo apachectl restart
久違的畫面出現了。。。