您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關MAC怎么使用php7搭建LNMP環境的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
查看MySQL可用版本信息:
brew info mysql
我這邊看到的版本是5.7.10:
mysql: stable 5.7.10 (bottled)
接下來安裝MySQL5.7.10:
brew install mysql
安裝完成之后按照提示將plist文件放入~/Library/LaunchAgents/中并load,設定MySQL開機啟動:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
啟動MySQL:
mysql.server start
啟動之后由于MySQL默認沒有設置密碼,所以要設置root的密碼:
mysql -uroot -p
提示輸入密碼的時候直接按回車就登錄了,登錄MySQL后提示如下:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.10 Homebrew
接下來設置root的密碼:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
設置密碼的時候最好設置一個強密碼,關于強密碼的規則,官方有如下說明:
Note MySQL's validate_password plugin is installed by default. This will require that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters.
為了方便使用,我們經常會創建任意連接的root用戶:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass4!' WITH GRANT OPTION;
刷新權限使命令生效:
flush privileges;
退出MySQL:exit;PHP 7.1.0-dev (cli) (built: Feb 4 2016 09:02:09) ( ZTS DEBUG ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies復制mysql配置文件:
sudo cp /usr/local/Cellar/mysql/5.7.10/support-files/my-default.cnf /etc/my.cnf
在/etc/my.cnf 中的[mysqld]后添加lower_case_table_names=1,重啟MYSQL服務,這時已設置成功:不區分表名的大小寫;
PS.lower_case_table_names參數詳解: 0:區分大小寫,1:不區分大小寫
mkdir ~/php7 && cd ~/php7 git clone https://git.php.net/repository/php-src.git
cd php-src ./buildconf
PS.編譯的時候如果內存1G以下請在結尾加上:--disable-fileinfo,
安裝php7時需要用安裝re2c、bison、ffmpeg、mcrypt、libiconv、gd、openssl:
安裝re2c:
brew install re2c
安裝bison(3.0.4):
brew install bison brew switch bison 3.0.4 brew link bison --force sudo mv /usr/bin/bison /usr/bin/bison.orig sudo ln -s /usr/local/bin/bison /usr/bin/bison
安裝ffmpeg:
brew install ffmpeg
安裝openssl:
brew install openssl brew link openssl --force
安裝mcrypt:
brew install mcrypt
安裝libiconv:
brew install libiconv
如果想要用openssl,剛才已經安裝了openssl,但是系統自帶了openssl,所以要用安裝的openssl替換系統自帶的openssl:
sudo ln -sf /usr/local/opt/openssl/bin/openssl /usr/bin/openssl
替換完成之后輸入openssl version就可以看到是上面用brew安裝的openssl了,因為在編譯php過程中需要openssl的header,但是安裝的時候都沒有
編譯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 --enable-bcmath --enable-calendar --enable-debug --enable-exif --enable-fileinfo --enable-filter --enable-fpm --enable-ftp --enable-gd-jis-conv --enable-gd-native-ttf --enable-hash --enable-json --enable-libxml --enable-maintainer-zts --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-opcache --enable-opcache-file --enable-pcntl --enable-pdo --enable-session --enable-shared --enable-shmop --enable-simplexml --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-xml --enable-zip --with-bz2 --with-curl --with-fpm-user=www --with-fpm-group=www --with-freetype-dir=/usr --with-gd --with-gettext --with-gmp --with-iconv --with-jpeg-dir=/usr --with-mcrypt=/usr/include --with-mhash --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --with-png-dir=/usr --with-xmlrpc --with-zlib -with-libxml-dir=/usr
如果編譯過程中提示:Cannot locate header file libintl.h,請執行如下操作:
①、安裝gettext:
brew install gettext
②、修改configure文件:
vi configure
找到如下文件:
for i in $PHP_GETTEXT /usr/local /usr ; do
替換為:
for i in $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext; do
如果提示openssl錯誤,在編譯的時候設定openssl的路徑,
--with-openssl=/usr/local/opt/openssl/
make && make install
如果嘗試很多辦法都提示ssl出錯,在編譯的時候就不要加上openssl了
sudo ln -s /usr/local/php7/bin/php* /usr/bin/ sudo ln -s /usr/local/php7/sbin/php-fpm /usr/bin cp php.ini-production /usr/local/php7/etc/php.ini cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf sudo ln -s /usr/local/php7/etc/php.ini /etc/php.ini sudo ln -s /usr/local/php7/etc/php-fpm.conf /etc/php-fpm.conf cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
在安轉完成之后會有提示:
You may want to add: /usr/local/php7/lib/php/php to your php.ini include_path
接下來編輯php.ini,
vi /etc/php.ini
找到include_path,在php.ini中加入include_path:
include_path = "/usr/local/php7/lib/php/php"
查看php版本:
php -v
顯示結果如下:
PHP 7.1.0-dev (cli) (built: Feb 4 2016 09:02:09) ( ZTS DEBUG ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
更改配置,使php7支持opcache,在安裝完成時會提示:
Installing shared extensions: /usr/local/php7/lib/php/extensions/debug-zts-20151012/
這個路徑是擴展包路徑,將路徑復制下來,找到extension_dir并將剛才的路徑添加到php.ini中,
vi /etc/php.ini
在php.ini中加入extension_dir的配置:
extension_dir = "/usr/local/php7/lib/php/extensions/debug-zts-20151012/"
開啟opcache擴展:
在php.ini中找到opcache,加入opcache.so
sudo mkdir -p /var/log/opcache vi /etc/php.ini
引用opcache.so:
zend_extension=opcache.so
并修改opcache的配置:
opcache.enable=1opcache.enable_cli=1opcache.file_cache="/var/log/opcache/"
現在查看php版本信息,顯示結果如下:
PHP 7.1.0-dev (cli) (built: Feb 4 2016 09:02:09) ( ZTS DEBUG ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
現在opcache擴展已經加入了,修改php-fpm的配置:
vi /etc/php-fpm.conf
修改配置:
pid = run/php-fpm.pid error_log = log/php-fpm.log
啟動php-fpm:
php-fpm -D
這樣會提示兩個警告:
[04-Feb-2016 09:45:25] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root [04-Feb-2016 09:45:25] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root
停止php-fpm的命令如下:
kill -INT `cat /usr/local/php7/var/run/php-fpm.pid`
重啟php-fpm的命令如下:
kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`
接下來開始安裝nginx:
brew install nginx
安裝完成的nginx,默認的root路徑如下:
Docroot is: /usr/local/var/www
nginx的配置文件目錄如下:
/usr/local/etc/nginx/nginx.conf
nginx虛擬站點目錄如下:
nginx will load all files in /usr/local/etc/nginx/servers/.
開機啟動nginx:
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
啟動nginx:
nginx
nginx監聽80端口是需要root權限的,現在nginx默認監聽的是8080端口:
sudo chown root:wheel /usr/local/Cellar/nginx/1.8.1/bin/nginx sudo chmod u+s /usr/local/Cellar/nginx/1.8.1/bin/nginx
配置nginx,先將nginx的配置文件放至/etc下:
sudo ln -s /usr/local/etc/nginx/nginx.conf /etcsudo ln -s /usr/local/etc/nginx/servers /etc/nginxservers
修改nginx監聽端口:
sudo vi /etc/nginx.conf
修改配置文件如下:
#user nobody; worker_processes 4; error_log /usr/local/var/log/error.log; error_log /usr/local/var/log/error.log notice; error_log /usr/local/var/log/error.log info; pid /usr/local/var/run/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /usr/local/var/log/access.log main; port_in_redirect off; sendfile on; tcp_nopush on; keepalive_timeout 65; gzip on; # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} include servers/*.conf; }
然后在/etc/nginxservers/下創建default.conf,編輯default.conf,加入以下內容:
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_intercept_errors on; include /usr/local/etc/nginx/fastcgi.conf; } } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
此時,LNMP已經搭建完畢,重啟php-fpm和nginx。
感謝各位的閱讀!關于“MAC怎么使用php7搭建LNMP環境”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。