How to install and configure Nginx+MySQL+PHP environment
1. Install nginx
One command to complete:
use=fastcgi emerge nginx
New users and groups:
groupadd www
useradd www - g www
nginx After installation, the nginx group and nginx user will be added by default, but I am still used to creating a new www group and www user as http service users. If the http server is changed to apache or lighttpd in the future, the user name and user group can remain unchanged.
2. Install mysql
Mysql must be installed before installing php, because the mysql operation function in php requires the support of the mysql header file and library.
emerge dev-db/mysql
Initialize the database:
The default path of the database is /var/lib/mysql. The installation of this article places it in /work/db/3306/data.
Copy code The code is as follows:
mkdir -p /work/db/3306/data
mysql_install_db --basedir=/usr --datadir=/work/db/ 3306/data --user=mysql
Modify the configuration file:
vim /etc/mysql/my.cnf
Modify datadir to:
datadir = /work/db /3306/data
Start mysql:
/etc/init.d/mysql start
Modify root password:
mysqladmin -uroot password hily
Test Database:
mysql -uroot -p
Display:
gentoo setup # mysql -uroot -p
enter password:
welcome to the mysql monitor. commands end with ; or \ g.
your mysql connection id is 2
server version: 5.0.84-log gentoo linux mysql-5.0.84-r1
type 'help;' or '\h' for help. type '\c' to clear the current input statement.
mysql>
Test successful!
3. Install php
To run php in fastcgi mode, you need to install php-fpm.
Currently, the last php version that requires php-fpm to be installed in patch form is 5.3.0. It will be possible to directly integrate php-fpm in php 5.3.2 version.
Here I will use php 5.3.0 to install.
Because the directory in gentoo has not integrated the portage of php-fpm, so the following is directly installed through source code compilation.
Download php 5.3.0:
wget http://cn.php.net/distributions/php-5.3.0.tar.bz2
Download php-fpm patch:
wget http://php-fpm.org/downloads/php-5.3.0-fpm-0.5.12.diff.gz
Extract php and apply fpm patch:
tar jxf php-5.3.0 .tar.bz2
gzip -cd php-5.3.0-fpm-0.5.12.diff.gz | patch -d php-5.3.0 -p1
Install the libraries required by php (according to its own Required):
emerge libpng
emerge jpeg
emerge freetype
use="png jpeg truetype" emerge gd
or directly:
use="png jpeg truetype" emerge gd
Configure and compile php (according to your own needs):
Copy the code The code is as follows:
cd php-5.3.0
./configure --prefix= /usr/local/php --with-config-file-path=/usr/local/php/etc
--with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --enable -fpm --enable-sockets
--enable-pdo --with-pdo-mysql=/usr --with-gd --with-jpeg-dir --with-png-dir
--with -freetype-dir --with-zlib
make && make install
php configuration file:
Copy code The code is as follows:
cp php.ini-production /usr/local/php/etc/php.ini
php-fpm configuration file:
vim /usr/local/php/etc/php-fpm.conf
Modify listen_address to the socket address (socket is more efficient than ip:port):
Modify user Group and user name:
Copy code The code is as follows:
unix user of processes
unix group of processes
Modify php-fpm running mode to apache-like mode:
Copy code The code is as follows :
startservers, minspareservers and maxspareservers are set according to actual needs. Here I am Virtual machines don’t need to be too big.
php-fpm startup script:
cp /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm
Start php-fpm
/etc/init.d/php-fpm start
Add startup service
Copy code The code is as follows:
rc-update add nginx default
rc-update add mysql default
rc-update add php-fpm default
Test nginx php
Add test site directory:
Copy code The code is as follows:
mkdir -p /work/www/test
echo "" > /work/www/test/index.php
Add the nginx configuration of the test site:
vim /etc/nginx/nginx.conf
Comment out the server section and add at the end of the http section:
include sites/*.enable;
After that, the configuration file of each site is saved as an independent file in the /etc/nginx/sites directory to facilitate management and maintenance.
mkdir /etc/nginx/sites
vim /etc/nginx/test.enable
test.enable configuration is as follows:
Copy code The code is as follows:
server {
listen 80;
server_name test.local;
access_log /work/www/logs/test.access.log main;
error_log /work/www/logs/test .error.log;
location / {
root /work/www/test;
index index.html index.htm index.php;
}
location ~ \.php$ {
root/work/www/test;
Fastcgi_index Index.php;
Fastcgi_param Script_filename $ Document_root $ FastCript_name;
Include F ASTCGI_PARAMS;
FASTCGI_PASS Unix: /TMP/php-fpm.sock;
}
}
Create a new storage log directory:
mkdir /work/www/logs
Add records in local hosts:
192.168.1.10 test.local
192.168.1.10 is the IP of my gentoo machine.
Reload nginx configuration
/etc/init.d/nginx reload
Access:
http://test.local/
Display normal phpinfo information, The installation is complete.
The above is the detailed content of How to install and configure Nginx+MySQL+PHP environment. For more information, please follow other related articles on the PHP Chinese website!

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

AI Hentai Generator
Generate AI Hentai for free.

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 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

One of the major changes introduced in MySQL 8.4 (the latest LTS release as of 2024) is that the "MySQL Native Password" plugin is no longer enabled by default. Further, MySQL 9.0 removes this plugin completely. This change affects PHP and other app

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

CMS stands for Content Management System. It is a software application or platform that enables users to create, manage, and modify digital content without requiring advanced technical knowledge. CMS allows users to easily create and organize content

Arrays are linear data structures used to process data in programming. Sometimes when we are processing arrays we need to add new elements to the existing array. In this article, we will discuss several ways to add elements to the end of an array in PHP, with code examples, output, and time and space complexity analysis for each method. Here are the different ways to add elements to an array: Use square brackets [] In PHP, the way to add elements to the end of an array is to use square brackets []. This syntax only works in cases where we want to add only a single element. The following is the syntax: $array[] = value; Example
