Mac 下 Nginx、MySQL、PHP-FPM 的安裝配置
PS:下面的安裝都是基於 homebrew,如果不熟悉或者還沒安裝有 homebrew 的話,可以檢視這篇關於 homebrew 的介紹。
安裝nginx
用 brew 一鍵安裝 nignx:
1
|
brew install
nginx |
如果需要安裝其他 nginx 的版本,可以 "brew edit nginx" 開啟修改 nginx 的安裝資訊包 formula,預設會用 vi 開啟,在檔案開頭處修改 nginx 相應版本的下載地址就行。
brew 執行完後,nginx 就安裝好了。可以用以下指令對 nginx 進行操作:
1
2
3
4
5
6
|
#開啟
nginx sudo
nginx #重新載入配置|重啟|停止|退出
nginx nginx
-s reload|reopen|stop|quit #測試配置是否有語法錯誤 nginx
-t |
詳細 nginx 幫助資訊:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
nginx
版本: nginx/1.2.6 用法:
nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives] 選項: -?,-h
: 開啟幫助資訊 -v
: 顯示版本資訊並退出 -V
: 顯示版本和配置選項資訊,然後退出 -t
: 檢測配置檔案是否有語法錯誤,然後退出 -q
: 在檢測配置檔案期間遮蔽非錯誤資訊 -s
signal : 給一個 nginx 主程式傳送訊號:stop(停止), quit(退出), reopen(重啟), reload(重新載入配置檔案) -p
prefix : 設定字首路徑(預設是:/usr/local/Cellar/nginx/1.2.6/) -c
filename : 設定配置檔案(預設是:/usr/local/etc/nginx/nginx.conf) -g
directives : 設定配置檔案外的全域性指令 |
開啟 nginx 後,預設的訪問埠 8080,如果要改為常用的 80 埠,則要修改 "/usr/local/etc/nginx/nginx.conf" 下監聽(listen)埠值。
預設的檔案訪問目錄(root)是 "/usr/local/Cellar/nginx/1.2.6/html"(這裡的1.2.6是安裝的nginx的版本,資料夾名以安裝的nginx版本為準)。
把 nginx 設定為開機啟動執行:
1
2
3
|
mkdir
-p ~ /Library/LaunchAgents cp
/usr/local/Cellar/nginx/1 .2.6 /homebrew .mxcl.nginx.plist
~ /Library/LaunchAgents/ launchctl
load -w ~ /Library/LaunchAgents/homebrew .mxcl.nginx.plist |
不過試了一下,不是超級使用者登陸,而是普通使用者登陸,並且監聽的埠在1024以下的(例如把預設的8080埠改為了80埠),nginx 開機是啟動不了。因此,要 nginx 開機啟動的話,需要給予它管理員許可權:
1
2
|
sudo
chown
root:wheel /usr/local/Cellar/nginx/1 .2.6 /sbin/nginx sudo
chmod
u+s /usr/local/Cellar/nginx/1 .2.6 /sbin/nginx |
安裝mysql
1
|
brew install
mysql |
在上面 brew 安裝完後,會在終端上顯示一些初始配置 mysql 的資訊,如下:
1)初始安裝 mysql 的一些配置資料庫(例如:information_schema、mysql)
1
|
mysql_install_db
--verbose --user=` whoami `
--basedir= "$(brew
--prefix mysql)"
--datadir= /usr/local/var/mysql
--tmpdir= /tmp |
執行完後,就可以在終端裡執行 "mysql",直接進入mysql資料庫裡。對,不用輸入密碼,可以直接連線,初始預設是可以匿名訪問的。超級使用者 "root" 也是沒設密碼,要設密碼的話可以執行下面指令
1
|
/usr/local/opt/mysql/bin/mysqladmin
-u root password 'new-password' |
現在訪問 mysql 還是不用密碼就可以連線,如果要設定一些登陸密碼的安全訪問限制,則需執行下面的 mysql安全安裝指令
1
|
/usr/local/opt/mysql/bin/mysql_secure_installation |
主要是設定修改root密碼(設定過了可以不用設定,略過)、刪除匿名訪問、刪除root網路訪問、刪除test資料庫。指令執行完後,登陸mysql就需要密碼驗證了
1
|
mysql
-u root -p |
開機啟動 mysql
1
2
3
|
mkdir
-p ~ /Library/LaunchAgents/ cp
/usr/local/Cellar/mysql/5 .5.28 /homebrew .mxcl.mysql.plist
~ /Library/LaunchAgents/ launchctl
load -w ~ /Library/LaunchAgents/homebrew .mxcl.mysql.plist |
如果要停止 mysql 服務則:
1
|
launchctl
unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist |
設定 MySQL 的配置檔案 my.cnf(預設在 /usr/local/Cellar/mysql/5.5.28/my.cnf,最好把配置檔案移到 /etc/my.cnf、/etc/mysql/my.cnf、/usr/local/etc/my.cnf、~/.my.cnf 這些位置之一,避免以後升級版本後 MySQL 配置被覆蓋):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
[client] port
= 3306 [mysqld] port
= 3306 server_id
= 1 character-set-server
= utf8 default-storage-engine
= INNODB socket
= /tmp/mysql.sock skip-external-locking key_buffer
= 16K query_cache_limit
= 256K query_cache_size
= 4M max_allowed_packet
= 1M table_open_cache
= 128 # 表快取的數目,一般是 max_connections 的倍數 max_connections
= 32 thread_concurrency
= 2 sort_buffer_size
= 64K read_buffer_size
= 256K read_rnd_buffer_size
= 256K net_buffer_length
= 2K thread_stack
= 64K #skip-bdb sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqldump] quick max_allowed_packet
= 16M [mysql] no-auto-rehash default-character-set
= utf8 [isamchk] key_buffer
= 8M sort_buffer_size
= 8M [myisamchk] key_buffer
= 8M sort_buffer_size
= 8M [mysqlhotcopy] interactive-timeout |
至此,mysql安裝完畢。
安裝php-fpm
Mac是預裝了php,不過很多擴充套件都沒安裝,目測最多隻能在終端裡執行下php指令,所以我選擇重新安裝php。由於 brew 預設是沒有 php 安裝,所以要使用 “brew tap” 來安裝 brew 的第三方程式包,這裡使用 josegonzalez 的php安裝包,具體操作如下:
1
2
|
brew
tap homebrew /dupes brew
tap josegonzalez /homebrew-php |
執行完後,就可以用 brew 安裝php了。這裡php有幾個版本可以安裝,具體可以執行 "brew search php" 檢視一下有什麼php版本可以安裝,一般會有“php52、php53、php54”版本,我安裝的是最新的php5.4版本。由於PHP5.4版本已經內嵌了 FPM(FastCGI Process Manager),在安裝選項裡標明就行,本人 php 的安裝配置指令如下:
1
|
brew install
php54 --with-imap --with-tidy --with-debug --with-pgsql --with-mysql --with-fpm |
更多的安裝選項可以通過 "brew options php54" 檢視。指令執行完後,php 跟 php-fpm 就安裝好了。
由於是重灌php,之前系統預裝的php還沒解除安裝,因此在終端呼叫php時,還是以之前系統的php版本做解析,所以這裡需要修改path,指定 php 的解析路徑。在~/.bashrc(沒有則建立)最後加入一行:
1
|
export
PATH= "$(brew
--prefix php54)/bin:$PATH" |
新增之後再執行一下source,使之生效
1
|
source
./.profile |
OK,php-fpm安裝完成。
要修改配置 php 或者 php-fpm 的話,可以修改 "/usr/local/etc/php/5.4/php.ini" 、 "/usr/local/etc/php/5.4/php-fpm.conf"。
啟動 php-fpm 的話就直接在終端裡執行 "php-fpm",預設開啟 php-fpm 會顯示一個狀態 shell 出來,也可以把 php-fpm 的配置檔案裡的 "daemonize = no" 改為 "daemonize = yes",就會以後臺守護程式的方式啟動,對於剛修改的配置檔案,可以執行 "php-fpm -t" 來檢測配置有沒有問題。
開機啟動 php-fpm(下面的 5.4.9 是當前安裝 php 的具體版本號):
1
2
3
|
mkdir
-p ~ /Library/LaunchAgents cp
/usr/local/Cellar/php54/5 .4.9 /homebrew-php .josegonzalez.php54.plist
~ /Library/LaunchAgents/ launchctl
load -w ~ /Library/LaunchAgents/homebrew-php .josegonzalez.php54.plist |
為了方便,寫了個啟動、關閉、重啟 php-fpm 的 shell 指令碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#!/bin/sh param=$1 start() { fpms=` ps
aux | grep
-i "php-fpm"
| grep
- v
grep
| awk
'{print $2}' ` if
[ ! -n "$fpms"
]; then php-fpm echo
"PHP-FPM Start" else echo
"PHP-FPM Already Start" fi } stop() { fpms=` ps
aux | grep
-i "php-fpm"
| grep
- v
grep
| awk
'{print $2}' ` echo
$fpms | xargs
kill
-9 for
pid in
$fpms; do if
echo
$pid | egrep
-q '^[0-9]+$' ; then echo
"PHP-FPM Pid $pid Kill" else echo
"$pid IS Not A PHP-FPM Pid" fi done } case
$param in 'start' ) start;; 'stop' ) stop;; 'restart' ) stop start;; *) echo
"Usage: ./phpfpm.sh start|stop|restart" ;; esac |
設定 Nginx 的 PHP-FPM 配置
開啟 nginx 預設註釋掉的php location設定,修改如下(具體配置引數,例如路徑,這裡以我本地安裝為準):
1
2
3
4
5
6
7
|
location
~ \.php$ { fastcgi_intercept_errors
on; fastcgi_pass
127.0.0.1:9000; fastcgi_index
index.php; fastcgi_param
SCRIPT_FILENAME /usr/local/Cellar/nginx/1.2.6/html$fastcgi_script_name; include
/usr/local/etc/nginx/fastcgi_params; } |
OK,這樣就可以在訪問目錄下(預設是/usr/local/Cellar/nginx/1.2.6/html)執行 php 檔案了。嗯,趕快輸出一下 "phpinfo()" 吧:)
一些問題
1
2
3
4
5
|
Error:
SHA256 mismatch Expected:
3fe780e5179e90c4d37276e79acc0d0692f1bc0911985af694b92c664c0ef3c4 Actual:
f9dbbb4e5ecd98010a3c4686d0713dcda6a77223fb9d05537089b576ab8f7fdd Archive:
/Library/Caches/Homebrew/php54-5.4.28 To
retry an incomplete download, remove the file above. |
這裡是 PHP 5.4.28 原始碼地址出錯的問題,修改檔案 /usr/local/Library/Taps/josegonzalez/homebrew-php/Formula/abstract-php-version.rb 下 Php54Defs 的原始碼地址 PHP_SRC_TARBALL 的值,這裡改用http://mirrors.sohu.com/php/php-5.4.28.tar.bz2 這個地址。
相關文章
- Mac下Nginx、PHP、MySQL 和 PHP-fpm安裝配置MacNginxPHPMySql
- mac下安裝nginx及相關配置MacNginx
- 筆記:MAC使用brew配置nginx、php、mysql、php-fpm、redis筆記MacNginxPHPMySqlRedis
- CentOS 7 下安裝PHP環境並且配置Nginx支援php-fpm模組CentOSPHPNginx
- centos 下 安裝 node,nginx, mysqlCentOSNginxMySql
- Linux環境下nginx安裝配置LinuxNginx
- MySQL的下載、安裝和配置MySql
- CentOS7 下 Nginx 的安裝和配置CentOSNginx
- 【Mysql】Windows下安裝和配置MysqlMySqlWindows
- PHP-FPM和nginx配置PHPNginx
- nginx + PHP-fpm 配置示例NginxPHP
- Nginx的安裝配置使用Nginx
- Mac 安裝 NginxMacNginx
- mac下用brew安裝 mysqlMacMySql
- Nginx 安裝與配置Nginx
- Nginx安裝與配置Nginx
- CentOS7上安裝並配置Nginx、PHP、MySqlCentOSNginxPHPMySql
- CentOS 7伺服器下Nginx安裝配置CentOS伺服器Nginx
- MySQL - 下載與安裝配置(Linux)MySqlLinux
- Centos6 下安裝Nginx+Mysql+PHPCentOSNginxMySqlPHP
- Linux下安裝Nginx+PHP7.1+MySQL5.7LinuxNginxPHPMySql
- Mac環境下安裝配置RedisMacRedis
- CentOS6下mysql的安裝與配置CentOSMySql
- MySQL的下載安裝及eclipse配置+jdbcMySqlEclipseJDBC
- Mac下通過Homebrew安裝MySQLMacMySql
- Mac 下配置 MySQLMacMySql
- macOS下MySQL 8.0 安裝與配置教程MacMySql
- Nginx 安裝配置介紹Nginx
- mac安裝mysql並配置環境變數MacMySql變數
- Nginx的安裝和多域名配置Nginx
- CentOS 下 MySQL 5.6 基於 RPM 的下載、安裝、配置CentOSMySql
- linux下nginx安裝LinuxNginx
- Linux下安裝nginxLinuxNginx
- docker下安裝NginxDockerNginx
- MySQL安裝配置MySql
- Nginx在Linux下的安裝NginxLinux
- mac無坑安裝nginxMacNginx
- 雲伺服器ubuntu下nginx和php-fpm環境配置伺服器UbuntuNginxPHP
- mac下搭建nginx+php+mysqlMacNginxPHPMySql