Home Database Mysql Tutorial How to install and configure Nginx+MySQL+PHP environment

How to install and configure Nginx+MySQL+PHP environment

May 29, 2023 pm 11:18 PM
mysql php nginx

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):
/tmp/php-fpm.sock

Modify user Group and user name:

Copy code The code is as follows:

unix user of processes
www
unix group of processes
www

Modify php-fpm running mode to apache-like mode:

Copy code The code is as follows :

apache-like
1
1
5

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

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

How to fix mysql_native_password not loaded errors on MySQL 8.4 How to fix mysql_native_password not loaded errors on MySQL 8.4 Dec 09, 2024 am 11:42 AM

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

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

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

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

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

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

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

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

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

Top 10 PHP CMS Platforms For Developers in 2024 Top 10 PHP CMS Platforms For Developers in 2024 Dec 05, 2024 am 10:29 AM

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

How to Add Elements to the End of an Array in PHP How to Add Elements to the End of an Array in PHP Feb 07, 2025 am 11:17 AM

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

See all articles