很多开发者都喜欢使用lnmp作为项目服务器,但是我们很多开发者本地喜欢用集成lamp环境开发,一到上线,各种水土不服,那么我们直接在mac上安装lnmp,就不会浪费那么多时间调代码了,接下来我们开始安装linux + nginx + php72 + mysql5
环境,brew
对于Mac相当于ubuntu 的apt-get那么重要以及方便,大家可以先去安装brew
,很简单
一、准备条件
为了安装最新的配置,我们提前升级brew
brew update
二、安装PHP7
1、安装php7.2
brew install php72
2、遇到问题以及解决,如果以前安装过的话会出现
➜ ~ brew install php72
==> Installing php72 from homebrew/php
Error: Cannot install homebrew/php/php72 because conflicting formulae are installed.
php55: because different php versions install the same binaries.
Please `brew unlink php55` before continuing.
Unlinking removes a formula's symlinks from /usr/local. You can
link the formula again after the install finishes. You can --force this
install, but the build may fail or cause obscure side-effects in the
resulting software.
遇到这个问题可以根据提示执行:brew unlink php55
,然后执行brew install php72
继续安装php72
3、配置文件位置
好安装后生成的配置文件都在/usr/local/etc/php/7.2
目录里,分别如下:
php.ini位置为/usr/local/etc/php/7.2/php.ini
php-fpm.conf位置为/usr/local/etc/php/7.2/php-fpm.conf
PHP运行phpize,PHP-配置ls /usr/local/opt/php72/bin
PHP-FPM位置为/usr/local/opt/php72/sbin/php-fpm
4、将php7加入开机启动
mkdir -p ~/Library/LaunchAgents ln -sfv /usr/local/opt/php72/homebrew.mxcl.php72.plist ~/Library/LaunchAgents/ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php72.plist
5、将php加入$PATH
vim ~/.bash_profile
添加如下配置文件
export PATH="/usr/local/sbin:$PATH"
export PATH="$(brew --prefix php72)/bin:$PATH"
export PATH="$(brew --prefix php72)/sbin:$PATH"
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
保存退出,运行配置
source ~/.bash_profile
6、查看是否安装成功
lsof -Pni4 | grep LISTEN | grep php
显示如下代码代表安装成功
php-fpm 782 songlu 7u IPv4 0x7acb53cb3b05a795 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 783 songlu 0u IPv4 0x7acb53cb3b05a795 0t0 TCP 127.0.0.1:9000 (LISTEN)
php-fpm 784 songlu 0u IPv4 0x7acb53cb3b05a795 0t0 TCP 127.0.0.1:9000 (LISTEN)
7、安装php7扩展
brew install php72 #按tab 可以显示如下一些库
php70 php70-fpm php70-mysql php70-sqlite3
php70-bcmath php70-gd php70-odbc php70-sybase
php70-bz2 php70-gmp php70-opcache php70-tidy
php70-cgi php70-imap php70-pgsql php70-xml
php70-cli php70-interbase php70-phpdbg php70-xmlrpc
php70-common php70-intl php70-pspell php70-xsl
php70-curl php70-json php70-readline php70-zip
php70-dba php70-ldap php70-recode php70-memcached
php70-dev php70-mbstring php70-snmp php70-xdebug
php70-enchant php70-mcrypt php70-soap php70-redis
php70-yaf
如果上面的方法不可用参考:
brew install php@7.2 #按tab 可以显示如下一些库
php@7.0 php@7.0 fpm php@7.0 mysql php@7.0 sqlite3
php@7.0 bcmath php@7.0 gd php@7.0 odbc php@7.0 sybase
php@7.0 bz2 php@7.0 gmp php@7.0 opcache php@7.0 tidy
php@7.0 cgi php@7.0 imap php@7.0 pgsql php@7.0 xml
php@7.0 cli php@7.0 interbase php@7.0 phpdbg php@7.0 xmlrpc
php@7.0 common php@7.0 intl php@7.0 pspell php@7.0 xsl
php@7.0 curl php@7.0 json php@7.0 readline php@7.0 zip
php@7.0 dba php@7.0 ldap php@7.0 recode php@7.0 memcached
php@7.0 dev php@7.0 mbstring php@7.0 snmp php@7.0 xdebug
php@7.0 enchant php@7.0 mcrypt php@7.0 soap php@7.0 redis
php@7.0 yaf
8、重启php7
如果我们修改配置,需要重启一下php7
brew services restart php72
二、安装Nginx
1、安装
brew install nginx
通过homebrew,nginx文件默认被安装在/usr/local/etc/nginx/nginx.conf
,然后再浏览器中键入http://localhost:8080,即可访问到nginx的欢迎界面。
2、配置
配置文件地址
vim /usr/local/etc/nginx/nginx.conf
给nginx添加一个配置文件sites-enabled
,方便以后我们添多站点;没有的话可以自己建一个然后再/usr/local/etc/nginx/nginx.conf
中添加如下代码引入配置,有的话可以忽略
include /usr/local/etc/nginx/sites-enabled/*;
接下来开始配置多站点
vim /usr/local/etc/nginx/sites-enabled/default
添加如下代码,每个意义看备注,多站点直接复制如下代码重新粘贴,然后修改root,server_name重启nginx即可
server {
listen 80;
root /usr/local/etc/nginx/www/cat/public; #项目文件地址
index index.php index.html index.htm;
server_name web.cat.com; #本地域名,可以在host里定义
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
配置完成我们可以重启nginx,让配置生效:
nginx -s reload
3、Nginx启动关闭命令:
测试配置是否有语法错误
nginx -t
开启Nginx服务器
sudo nginx
重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
也可以使用Mac的launchctl来启动|停止
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
Nginx开机启动,不过推荐自己启动
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
三、安装MySQL
MySQL也可以使用brew命令直接进行安装:
brew install mysql@5.7
同样,可以设置MySQL的开机自启动:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql@5.7.plist
然后进行MySQL的安全安装,使用以下命令,可以更改root密码、删除匿名用户、关闭远程连接等:
然后会输出以下内容:
> Enter current password for root (enter for none): //默认没有密码,直接回车即可
> Change the root password? [Y/n] //是否更改root密码,选择是,然后输入并确认密码
> Remove anonymous users? [Y/n] //是否删除匿名用户,选择是
> Disallow root login remotely? [Y/n] //是否禁止远程登录,选择是
> Remove test database and access to it? [Y/n] //是否删除test数据库,选择是
> Reload privilege tables now? [Y/n] //是否重载表格数据,选择是
测试数据库是否安装成功:
mysql -u root -p
然后输入刚才设置的root密码,将会输出以下内容:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit //输入exit退出数据库
常见问题汇总
1、如果出现-bash: mysql: command not found可以执行
PATH="$PATH":/usr/local/mysql/bin