eeking a satisfactory solution to create a local web server for programming in macOS with PHP and MySQL, I was disappointed that the turnkey solutions were far from equaling the WAMP that may exist on Windows.
But I forgot macOS is a Unix system, and unlike Windows, it’s perfectly possible to create a customized local server with some packages.
We will see how to install Nginx, PHP-FPM and MariaDB (MySQL) on macOS El Capitan thanks to Homebrew package manager.
Homebrew
HomeBrew is a package manager for macOS, that allows to easily install various Unix applications.
To install, simply execute the command shown on the official website.
If you do not already have them, macOS will prompt you to first install Xcode Command Line Tools.
After installation, the following command, if necessary, will tell you how to complete the installation:
brew doctor
Then updates all packages with:
brew update
brew upgrade
Nginx
Although Apache is natively included with macOS, we propose here to install Nginx, particularly lightweight and easily configurable. Its installation is done with:
brew install nginx
The following will automatically launch Nginx at startup:
brew services start nginx
We want to store our web site in the folder of our choice, and access to the URL http://localhost/
.
To do this, edit the configuration file:
nano /usr/local/etc/nginx/nginx.conf
To begin, we edit the line beginning with Nginx #user
to give permission to access our files, to modify the following line, where <user>
is your username:
user <user> staff;
To use port 80, changing the line beginning with listen
in :
listen 80;
Finally, it indicates the folder where you want to store your sites through the variable root
:
root <chemin/vers/votre/site>;
We can now start Nginx:
sudo nginx
PHP
To use PHP with Nginx we will use PHP-FPM. To install PHP 7.0, launch the following commands:
Setup the homebrew taps which has dependencies we need:
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
Then we install :
brew install php70
Once installed, use the following commands to run only PHP-FPM on startup:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php70/homebrew.mxcl.php70.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php70.plist
One can ensure that the service runs well watching if the following command produces a result:
lsof -Pni4 | grep LISTEN | grep php
Finally, re-edit the configuration file:
nano /usr/local/etc/nginx/nginx.conf
We modify the line starting with index
by:
index index.php;
Finally, add in the section server
the following lines to run PHP for all files with the extension .php
:
location ~ \.php {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
Restart Nginx to activate the changes:
sudo nginx -s reload
MySQL
Rather than installing the version of MySQL by Oracle achieved, we will install the free MariaDB fork with the following commands:
brew install mariadb
The following lines are used to start the server at startup:
brew services start mariadb
Finally, complete the installation by choosing a root
password for MySQL:
mysql_secure_installation
Here is the perfect MAMP installation !
转载 https://www.sylvaindurand.org/setting-up-a-nginx-web-server-on-macos/