Tutorial on installing nginx and php_PHP under mac
1. Preface:
1.1. Environment selection:
Re-configure PHP on the Mac. Originally, the Mac comes with apach, PHP and pgsql. If the diagram is simple, you can use it directly, but after installation I thought carefully about a few questions before:
Should I choose apache or nginx: I know less about both. Relatively speaking, I have more exposure to nginx. The server also uses nginx. There is no way to say that nginx has a high load. . In order to have better access to the nginx environment, I decided to unify the environment to facilitate future use. This is the main key this time;
Install php: Mac os comes with php, which seems to be 5.3.8, and the version is relatively backward. , but this doesn't matter, because I used to manage php through php-osx by Liip, so I don't worry about version issues. However, php-osx by Liip does not seem to have fmp-related configurations, so it will be relatively troublesome for me to use it with nginx. Then I can only choose other solutions
Install mysql: There is no doubt about this , I will definitely not use pgsql at the moment. After all, I have never been exposed to it and it requires learning costs, so I have removed all the parts about pgsql in this record
1.2. How to install it:
Since If I deny the system's own environment, then I have to install it through other methods, such as manual compilation. If you compile it manually, you will encounter the following problems:
Compilation is time-consuming, PHP relies on so many programs, and installing them one by one is too tiring!
What if it is updated in the future? disaster! !
But fortunately, there is its own third-party management program under Mac: homebrew, and relatively speaking, I think it may be superior to apt-get and yum under Linux in some aspects. If you use homebrew to install and manage the operating environment, at least a few of my problems can be solved:
Installation problems, I don’t have to go through the tedious process of installing dependent programs
Upgrade problems, I only need brew update to upgrade all programs at once
Regarding version issues, the homebrew version is updated in a timely manner. As for apt-get and yum, the stable versions used this year are basically the stable versions from a few years ago
OK, the following installations are all based on homebrew. If you are not familiar with it or have not installed it yet If you have homebrew, you can check out this article about: Mac Developer Tool-Homebrew Introduction and Installation.
2. Install nginx
2.1. Installation:
Use brew to install nginx with one click:
1
brew install nginx
If you need to install other nginx versions, you can "brew edit nginx "Open and modify the nginx installation information package formula. By default, it will be opened with vi. Just modify the download address of the corresponding version of nginx at the beginning of the file.
2.2. Configuration
After brew is executed, nginx will be installed. You can use the following commands to operate nginx:
#Open nginx
sudo nginx
#Reload|Restart|Stop|Quit nginx
nginx -s reload|reopen|stop|quit
After opening nginx, the default access port is 8080, if you want to change it to a commonly used one 80 port, you need to modify the listening port value under "/usr/local/etc/nginx/nginx.conf".
The default file access directory (root) is "/usr/local/Cellar/nginx/1.4.2/html" (1.4.2 here is the installed nginx version, and the folder name is based on the installed nginx version. allow).
2.3. Set nginx to start running at startup:
mkdir -p ~/ Library/LaunchAgents/
cp /usr/local/Cellar/nginx/1.4.2/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/ homebrew.mxcl.nginx.plist
But after trying it, it is not a super user login, but a normal user login, and the listening port is below 1024 (for example, the default 8080 port is changed to 80 port), nginx cannot be started when booting. Therefore, to start nginx, you need to give it administrator rights:
2
sudo chown root:wheel /usr/local/Cellar/nginx/1.4.2/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.4.2/bin/nginx
3. Install mysql
3.1. Installation:
brew install The version installed by mysql
homebrew is also the latest stable version. The installation process is relatively simple, but the initialization is relatively troublesome. I failed many times here.
3.2. Configuration:
3.2.1. Initialization
Initial installation of some configuration databases of mysql (for example: information_schema, mysql)
sudo mysql_install_db
--verbose --user=`whoami`
--basedir="$(brew --prefix mysql)"
- -datadir=/usr/local/var/mysql
--tmpdir=/tmp
--explicit_defaults_for_timestamp
I encountered two problems here, and the process was not recorded. Here is a brief solution:
The system suggested that I add "–explicit_defaults_for_timestamp";
I encountered several errors during the installation process, saying that Several files in db do not exist;
After searching online, most of the suggestions are to modify the permissions of the /usr/local/var/mysql directory;
After doing this, I found that this may not be the case. The problem is caused by My previous operation encountered an error and was aborted, generating an incomplete var directory, so every time the installation failed, I deleted the following files and re-initialized it.
sudo rm /usr/local/opt/mysql/my.cnf
sudo rm -R /usr/local/var/mysql/
After the installation is completed, a large piece of mysql related information will appear. Run the following command to start mysql
/usr/local/opt/mysql/bin/mysqld_safe &
After execution, you can run "mysql" in the terminal and directly enter the mysql database. Yes, you can connect directly without entering a password. The initial default is anonymous access.
3.2.2. Change the password
The super user "root" also does not have a password. If you want to set a password, you can execute the following command
/usr/local/opt/mysql/bin/mysqladmin -u root password 'new-password'
You can now access mysql without a password Connection, if you want to set some security access restrictions for login passwords, you need to execute the following mysql secure installation instructions
/usr/local/opt/mysql/bin/mysql_secure_installation
Mainly to set and modify the root password (you don’t need to set it if it is set, skip it), delete anonymous access, and delete the root network Access and delete the test database. After the command is executed, password verification is required to log in to mysql
mysql -u root -p
3.3. Start mysql on boot
mkdir -p ~ /Library/LaunchAgents/
cp /usr/local/Cellar/mysql/5.6.13/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents /homebrew.mxcl.mysql.plist
At this point, mysql is installed.
4. Install php, php-fpm...
4.1. Installation
Mac is pre-installed with php, but many extensions are not installed. Visual inspection can only execute php commands in the terminal, so I choose Reinstall php. Since brew does not have PHP installed by default, you need to use "brew tap" to install brew's third-party package. Here we use josegonzalez's PHP installation package. The specific operations are as follows:
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
After execution, you can use brew PHP is installed. There are several versions of php that can be installed. Specifically, you can execute "brew search php" to see what php versions can be installed. Generally, there are "php52, php53, php54, php55" versions. I installed the latest php5.5 version. . Since the PHP5.5 version has embedded FPM (FastCGI Process Manager), just indicate it in the installation options. My PHP installation configuration instructions are as follows:
sudo brew install php55
--with-debug
--with-fpm
--with-gmp
--with-homebrew- openssl
--with-imap --with-intl
--with-libmysql
--without-bz2
--without-mysql
--without-pcntl
- -without-pear
More installation options can be viewed through "brew options php55".
Tips: –with-cgi and –with-fpm cannot be installed together, as they conflict with each other.
After the command is executed, php and php-fpm will be installed.
4.2. Configuration
Since you are reinstalling PHP, the PHP pre-installed in the system has not been uninstalled yet. Therefore, when calling PHP from the terminal, the PHP version of the previous system is still used for analysis, so you need to modify the path here and specify PHP. parsing path. Add a line at the end of ~/.bashrc (create it if it doesn’t exist):
export PATH=" $(brew --prefix php54)/bin:$PATH"
[html]
[code]
source ./.profile
If this file does not exist, please refer to this article to configure it: The Mac system terminal command line does not execute commands and the command not found solution always appears
OK, the php-fpm installation is completed.
If you want to modify the configuration of php or php-fpm, you can modify "/usr/local/etc/php/5.5/php.ini" and "/usr/local/etc/php/5.5/php-fpm.conf" .
For detailed configuration methods, please refer to relevant information:
Detailed explanation of php-fpm startup parameters and important configurations
Linux smooth compilation and upgrade php to 5.5.0
To start php-fpm, execute it directly in the terminal." php-fpm". By default, opening php-fpm will display a status shell. You can also change "daemonize = no" in the configuration file of php-fpm to "daemonize = yes", and it will start as a background daemon. , for the newly modified configuration file, you can execute "php-fpm -t" to check whether there are any problems with the configuration.
4.3. Start up
Start up php-fpm (5.5.3 below is the specific version number of PHP currently installed):
mkdir -p ~/Library/LaunchAgents/
cp /usr/local/Cellar/php54/5.5.3/homebrew-php.josegonzalez.php55. plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist
For convenience, I wrote a startup, shutdown and restart php -fpm shell script:
#!/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
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
Add the parsed file type "index index" in the server block .html index.htm index.php;”
listen 80;
server_name localhost;
index index.html index.htm index.php;
......
}
#Fastcgi_pass unix: /tmp/php-cgi.sock;
FastCGI_PASS 127.0.0.1:9000; P;
fastcgi_param SCRIPT_FILENAME /Library/WebServer/public_html$fastcgi_script_name;
include /usr/local/etc/nginx/fastcgi_params;
#include fcgi.conf;
}
Modify directory users and user groups:
OK, so you can execute the php file in the access directory (default is /Library/WebServer/public_html). Well, quickly output "phpinfo()"~

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP is suitable for web development and rapid prototyping, and Python is suitable for data science and machine learning. 1.PHP is used for dynamic web development, with simple syntax and suitable for rapid development. 2. Python has concise syntax, is suitable for multiple fields, and has a strong library ecosystem.

PHP originated in 1994 and was developed by RasmusLerdorf. It was originally used to track website visitors and gradually evolved into a server-side scripting language and was widely used in web development. Python was developed by Guidovan Rossum in the late 1980s and was first released in 1991. It emphasizes code readability and simplicity, and is suitable for scientific computing, data analysis and other fields.

The core benefits of PHP include ease of learning, strong web development support, rich libraries and frameworks, high performance and scalability, cross-platform compatibility, and cost-effectiveness. 1) Easy to learn and use, suitable for beginners; 2) Good integration with web servers and supports multiple databases; 3) Have powerful frameworks such as Laravel; 4) High performance can be achieved through optimization; 5) Support multiple operating systems; 6) Open source to reduce development costs.

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

Docker container startup steps: Pull the container image: Run "docker pull [mirror name]". Create a container: Use "docker create [options] [mirror name] [commands and parameters]". Start the container: Execute "docker start [Container name or ID]". Check container status: Verify that the container is running with "docker ps".

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

PHP is suitable for web development and content management systems, and Python is suitable for data science, machine learning and automation scripts. 1.PHP performs well in building fast and scalable websites and applications and is commonly used in CMS such as WordPress. 2. Python has performed outstandingly in the fields of data science and machine learning, with rich libraries such as NumPy and TensorFlow.
