백엔드 개발 PHP7 CentOS에서 PHP7+Nginx+MySQL을 설치하는 방법에 대한 자세한 설명

CentOS에서 PHP7+Nginx+MySQL을 설치하는 방법에 대한 자세한 설명

Jan 23, 2020 am 11:27 AM
centos

CentOS에서 PHP7+Nginx+MySQL을 설치하는 방법에 대한 자세한 설명

이 문서에서는 centos6을 예로 들어 설명합니다. 명령 부분에서는 sudo 명령이 생략되었습니다. centos6为例。命令部分均省略sudo命令。

安装PHP

下载

http://cn2.php.net/distributions/php-5.6.22.tar.bz2
http://cn2.php.net/distributions/php-7.0.7.tar.bz2
로그인 후 복사

更新yum源

这里将Centos的yum源更换为国内的阿里云源。yum安装正常的可以跳过本步骤。

阿里云Linux安装镜像源地址:

http://mirrors.aliyun.com/
로그인 후 복사

1、备份你的原镜像文件,以免出错后可以恢复:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
로그인 후 복사

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/

## CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
## CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
## CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
로그인 후 복사

3、生成缓存

yum clean all
yum makecache
로그인 후 복사

安装依赖

yum install -y gcc gcc-c++ make cmake bison autoconf wget lrzsz
yum install -y libtool libtool-ltdl-devel 
yum install -y freetype-devel libjpeg.x86_64 libjpeg-devel libpng-devel gd-devel
yum install -y python-devel  patch  sudo 
yum install -y openssl* openssl openssl-devel ncurses-devel
yum install -y bzip* bzip2 unzip zlib-devel
yum install -y libevent*
yum install -y libxml* libxml2-devel
yum install -y libcurl* curl-devel 
yum install -y readline-devel
로그인 후 복사

需要编译libmcrypt、mhash、mcrypt库

tar zxvf /libmcrypt-2.5.8.tar.gz \
&& cd /libmcrypt-2.5.8 && ./configure && make && make install && cd - / && rm -rf /libmcrypt* \
&& tar zxvf /mhash-0.9.9.9.tar.gz && cd mhash-0.9.9.9 && ./configure && make && make install && cd - / && rm -rf /mhash* \
&& tar zxvf /mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8 && LD_LIBRARY_PATH=/usr/local/lib ./configure && make && make install && cd - / && rm -rf /mcrypt*
로그인 후 복사

开始安装

使用./configure --help查看编译支持的选项。如果写了不支持的选项,如php7里不支持--with-mysql=mysqlnd

PHP 설치

Download

configure: WARNING: unrecognized options: --with-mysql
로그인 후 복사

yum 소스 업데이트

여기에 있습니다. Centos yum 소스는 국내 Alibaba Cloud 소스로 대체됩니다. yum 설치가 정상적으로 진행되었다면 이 단계를 건너뛰어도 됩니다.

Alibaba Cloud Linux 설치 이미지 소스 주소:

wget http://cn2.php.net/distributions/php-7.0.7.tar.bz2
tar jxvf php-7.0.7.tar.bz2 
cd php-7.0.7
$ ./configure --prefix=/usr/local/php --with-config-file-scan-dir=/usr/local/php/etc/ --enable-inline-optimization --enable-opcache --enable-session --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pdo-sqlite --with-sqlite3 --with-gettext --enable-mbregex --enable-mbstring --enable-xml --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-xmlrpc --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-curlwrappers --with-zlib --enable-zip --with-bz2 --with-gd --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-readline
 
$ make
$ make install
로그인 후 복사

1. 오류를 방지하기 위해 원본 이미지 파일을 복원할 수 있습니다:

--with-fpm-user=www --with-fpm-group=www
로그인 후 복사

2 새 CentOS-Base.repo를 /etc/yum.repos.d/

#如果只需要配置某一个目录可以执行则 设置为on并指定 safe_mode_exec_dir=string目录来执行系统函数。
#本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
safe_mode = off
로그인 후 복사
#에 다운로드하세요. 🎜 🎜#3. 캐시 생성

Build complete.
Don't forget to run 'make test'.
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
Installing PHP CLI binary:        /usr/local/php/bin/
Installing PHP CLI man page:      /usr/local/php/php/man/man1/
Installing PHP FPM binary:        /usr/local/php/sbin/
Installing PHP FPM config:        /usr/local/php/etc/
Installing PHP FPM man page:      /usr/local/php/php/man/man8/
Installing PHP FPM status page:   /usr/local/php/php/php/fpm/
Installing phpdbg binary:         /usr/local/php/bin/
Installing phpdbg man page:       /usr/local/php/php/man/man1/
Installing PHP CGI binary:        /usr/local/php/bin/
Installing PHP CGI man page:      /usr/local/php/php/man/man1/
Installing build environment:     /usr/local/php/lib/php/build/
Installing header files:           /usr/local/php/include/php/
Installing helper programs:       /usr/local/php/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.0
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.3.0
[PEAR] PEAR           - installed: 1.10.1
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/php-7.0.7/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:           /usr/local/php/include/php/ext/pdo/
[root@e8ed9b00e80c php-7.0.7]# /usr/local/php/bin/php -m
[PHP Modules]
bcmath
bz2
Core
ctype
curl
date
dom
fileinfo
filter
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
[Zend Modules]
로그인 후 복사

설치 종속성

$ cp php-7.0.7/php.ini* /usr/local/php/etc/
$ cd /usr/local/php/etc/
$ cp php.ini-production php.ini
$ cp php-fpm.conf.default  php-fpm.conf
$ cp php-fpm.d/www.conf.default php-fpm.d/www.conf
$ ls
pear.conf  php-fpm.conf.default  php.ini-development  php.ini-production
로그인 후 복사

libmcrypt, mhash, mcrypt 라이브러리 컴파일 필요

# 不显示错误,默认
display_errors = Off
# 在关闭display_errors后开启PHP错误日志(路径在php-fpm.conf中配置),默认
log_errors = On
# 字符集,默认
default_charset = "UTF-8"
# 文件上传大小,默认值太小,建议修改10M
upload_max_filesize = 2M
# Maximum size of POST data that PHP will accept.  表单最大值,默认是8M,如果表单含有多图上传,大小可能不够。超过该大小后台收不到 表单数据
post_max_size = 8M  
# 设置PHP的扩展库路径,,默认被注释了。
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/"
# 如果不设置extension_dir,也可以直接写绝对位置:
# extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/redis.so
# 设置PHP的时区
date.timezone = PRC
# 开启opcache,默认是0
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1
로그인 후 복사

시작 설치# 🎜🎜#

./configure --help를 사용하여 컴파일에서 지원되는 옵션을 확인하세요. 지원되지 않는 옵션을 작성하는 경우(예: --with-mysql=mysqlnd는 php7에서 지원되지 않음) 다음 메시지가 표시됩니다:

; 去掉里分号,方便以后重启。建议修改
; Default Value: none
; 下面的值最终目录是/usr/local/php/var/run/php-fpm.pid
; 开启后可以平滑重启php-fpm
pid = run/php-fpm.pid
; 设置错误日志的路径,可以默认值
; Note: the default prefix is /usr/local/php/var
; Default Value: log/php-fpm.log, 即/usr/local/php/var/log/php-fpm.log
error_log = /var/log/php-fpm/error.log
; Log等级,可以默认值
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
log_level = notice
; 后台运行,默认yes,可以默认值
; Default Value: yes
;daemonize = yes
; 引入www.conf文件中的配置,可以默认值
include=/usr/local/php/etc/php-fpm.d/*.conf
로그인 후 복사
; 设置用户和用户组,默认都是nobody。可以默认值
user = nginx
group = nginx
; 设置PHP监听
; 下面是默认值,不建议使用。可以默认值
; listen = 127.0.0.1:9000
; 根据nginx.conf中的配置fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
listen = /var/run/php-fpm/php-fpm.sock
######开启慢日志。可以默认值
slowlog = /var/log/php-fpm/$pool-slow.log
request_slowlog_timeout = 10s
로그인 후 복사

Optional:

/usr/local/php/sbin/php-fpm -t
로그인 후 복사
#🎜🎜 #여기에는 많은 확장 프로그램이 활성화되어 있습니다. 지금 켜는 것을 잊어버린 경우에도 나중에 추가할 수 있나요? 대답은 '예'입니다. 앞으로는 소스코드의 ext 디렉터리만 입력하면 됩니다. 예를 들어 pdo_mysql을 잊어버린 경우 ext/pdo_mysql을 입력하고 phpize 도구를 사용하여 일반 확장 프로그램을 설치하는 것처럼 pdo_mysql.so를 생성합니다.

정보: --enable-safe-mode

켜면 PHP가 시스템 기능을 실행할 수 있습니다. 끄는 것이 좋습니다(영향을 받는 PHP 기능을 검색할 수 있습니다). 이 기능으로)#🎜🎜 #

ln -sf /usr/local/php/sbin/php-fpm /usr/bin/
ln -sf /usr/local/php/bin/php /usr/bin/
ln -sf /usr/local/php/bin/phpize /usr/bin/
ln -sf /usr/local/php/bin/php-config /usr/bin/
ln -sf /usr/local/php/bin/php-cig /usr/bin/
로그인 후 복사

php7로 컴파일할 때 이 구성을 추가할 필요가 없습니다.

컴파일은 더 많은 메모리와 CPU를 소비합니다. 컴파일이 완료될 때까지 30분 정도 기다립니다.

echo -e '\nexport PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH\n' >> /etc/profile && source /etc/profile
로그인 후 복사

Configuration file

설치 패키지에서 php.ini 및 php-fpm.conf를 다음 패키지로 복사해야 합니다. 설치 디렉터리:

/usr/local/php/sbin/php-fpm
로그인 후 복사

php.ini 구성

useradd www
chown -R www:www /www
로그인 후 복사

php-fpm.conf 구성

ps aux |grep php-fpm # 另外该命令也可以让我们知道fpm的配置文件在哪。
netstat -ant |grep 9000
로그인 후 복사

www.conf 구성(php-fpm에서) .d 디렉터리)#🎜🎜 #

www.conf php-fpm 프로세스 서비스의 확장 구성 파일입니다.

ps aux | grep -c php-fpm
로그인 후 복사

구성 파일을 저장한 후, 구성이 올바른지 여부는 다음과 같습니다.

/usr/local/php/sbin/php-fpm         # php-fpm启动
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`      # php-fpm关闭
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`         #php-fpm平滑重启
로그인 후 복사
#🎜🎜 # test 성공적인 문구가 나타나면 구성에 문제가 없다는 의미입니다. 게다가 이 명령은 php-fpm의 구성 파일이 어디에 있는지 알려줄 수도 있습니다.

소프트 연결 설정:

killall php-fpm
/usr/local/php/sbin/php-fpm &
로그인 후 복사

또는 PHP 컴파일로 생성된 bin 디렉터리를 현재 Linux 시스템의 환경 변수에 추가:

ps aux | grep php-fpm
kill -9  1210  #1210指php-fpm进程id
로그인 후 복사

php 시작 -fpm

nginx news
http://nginx.org/
http://nginx.org/download/nginx-1.11.1.tar.gz
로그인 후 복사

www 사용자가 없다는 메시지가 표시되면(www.conf는 사용자가 아닌 www로 채워져 있음) 다음을 추가하세요.

# 为了支持rewrite功能,我们需要安装pcre
yum install pcre-devel
# 需要ssl的支持,如果不需要ssl支持,请跳过这一步
# yum install openssl*
# gzip 类库安装,按需安装
# yum install zlib zlib-devel
로그인 후 복사

사용자인지 여부 감지 시작됨:

$ tar -zxvf nginx-1.11.1.tar.gz
$ cd nginx-1.11.1
$ ./configure \
    --prefix=/usr/local/nginx \
    --with-http_stub_status_module  \
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_sub_module \
    --with-http_gzip_static_module \
    --with-pcre
로그인 후 복사

php-fpm 프로세스 수 보기:

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library
  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"
로그인 후 복사

php-fpm 작업 요약:

make
make install
로그인 후 복사

다시 시작 방법 2: #🎜 🎜#
ln -sf /usr/local/nginx/sbin/nginx /usr/sbin
로그인 후 복사

원활하게 시작되지 않으면 프로세스 ID를 종료하세요.

nginx -t
로그인 후 복사

Install Nginx

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
로그인 후 복사

종속성:

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    
    # 解决虚拟主机名字过长 http://www.jb51.net/article/26412.htm
    server_names_hash_bucket_size 128; 
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    
    autoindex on;# 显示目录
    autoindex_exact_size on;# 显示文件大小
    autoindex_localtime on;# 显示文件时间
    
    include vhosts/*.conf;
}
로그인 후 복사
#🎜🎜 #컴파일 매개변수 구성

vhosts/localhost.conf
로그인 후 복사
# 🎜🎜#구성 확인:

server {
    listen       80;
    server_name  localhost;
    #charset utf-8;
    #access_log  logs/host.access.log  main;
    location / {
        root   /www/www/;
        index  index.php index.html index.htm;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /www/www/;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
로그인 후 복사

nginx 컴파일 및 설치

/usr/local/nginx/sbin/nginx
# 或者
nginx
로그인 후 복사

소프트 연결 설정:

/usr/local/nginx/sbin/nginx -s reload
# 或者
nginx -s reload
로그인 후 복사
#🎜🎜 #nginx 감지:

/usr/local/nginx/sbin/nginx -s stop
# 或者
nginx -s stop
로그인 후 복사
#🎜 🎜#디스플레이:
chkconfig --list
chkconfig nginx on
service apache off
로그인 후 복사
성공. nginx.conf를 재구성해 보겠습니다:

wget https://github.com/swoole/swoole-src/archive/swoole-1.8.5-stable.zip
unzip swoole-1.8.5-stable.zip
cd swoole-1.8.5-stable
phpize
./configure
make && make install
로그인 후 복사

로컬 호스트 구성:

$ wget http://download.redis.io/releases/redis-3.2.0.tar.gz
$ tar xzf redis-3.2.0.tar.gz
$ cd redis-3.2.0
$ make
로그인 후 복사
mkdir /usr/local/redis
cd src
cp  redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis
로그인 후 복사
nginx 시작:

$ cd redis-3.2.0
$ cp redis.conf /usr/local/redis/
로그인 후 복사

다시 시작:

make PREFIX=/usr/local/redis install
로그인 후 복사
#🎜 🎜# 중지:
vi /etc/profile
로그인 후 복사

포트 80이 사용 중이라는 메시지가 표시되면 ps aunx | grep 80을 사용하여 확인할 수 있습니다. 일반적으로 아파치가 차지합니다.

export PATH="$PATH:/usr/local/redis/bin"
로그인 후 복사
을 사용하면 아파치가 시작되지 않도록 비활성화하고 아파치 서비스를 종료할 수 있습니다.

확장 프로그램 설치

Swoole 설치

Swoole: PHP의 비동기, 병렬 , 고성능 네트워크 통신 엔진

http://www.swoole.com/

. /etc/profile
로그인 후 복사

install redis#🎜 🎜#

서버 측:

http://download.redis.io/releases/redis-3.2.0.tar.gz

wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
tar -zxvf 2.2.4
cd phpredis-2.2.4/
phpize
./configure 
make && make install
로그인 후 복사

기본적으로 컴파일 후 현재 디렉토리의 src 디렉토리에 위치하게 됩니다. 실행 파일을 다른 위치에 복사할 수 있습니다:

phpredis/phpredis: A PHP extension for Redis
https://github.com/phpredis/phpredis
로그인 후 복사

구성 파일 복사

wget http://pecl.php.net/get/igbinary-1.2.1.tgz
tar zxvf igbinary-1.2.1.tgz
cd igbinary-1.2.1
phpize
./configure 
make && make install
로그인 후 복사
또는 설치 시 위치 지정:

wget https://github.com/phpredis/phpredis/archive/3.0.0-rc1.zip
unzip 3.0.0-rc1
cd phpredis-3.0.0-rc1/
phpize
./configure [--enable-redis-igbinary]
make && make install
로그인 후 복사

Redis 변경 명령 시스템 매개변수 PATH에 디렉터리를 추가합니다.

프로필 파일 수정:

pecl install memcache
로그인 후 복사

마지막 줄에 추가:

git clone https://github.com/websupport-sk/pecl-memcache memcache
cd memcache
phpize
./confihure
make
make install
로그인 후 복사
그런 다음 이것을 적용합니다. 파일을 즉시 저장합니다:

pecl install memcached
로그인 후 복사

이 방법으로 redis-cli 명령을 직접 호출할 수 있습니다

클라이언트:

2.0 설치# 🎜🎜#

yum install libmemcached-dev
로그인 후 복사

3.0 설치

yum install php-cli php-devel php-common php-pear  php-gd php-fpm php-mbstring php-mcrypt php-mysql php-sqlite3 php-pdo php-memcache
로그인 후 복사

먼저 igbinary를 설치해야 합니다.

PECL::Package::igbinary#🎜🎜 ##🎜🎜 #http://pecl.php.net/package/igbinary

sudo apt-get install php7.0-cli php7.0-dev php-pear php7.0-common  php7.0-pdo php7.0-curl php7.0-gd php-redis php-xdebug php-memcache php7.0-fpm  composer
로그인 후 복사
/etc/php.ini
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
/etc/php.d/mysqli.ini
/etc/php.d/pdo.ini
로그인 후 복사

memcache 설치

yum install -y gcc gcc-c++ make cmake bison autoconf
로그인 후 복사
로그인 후 복사

php7 설치가 호환됩니다. 질문, github에서 사용 가능한 것을 찾았습니다:

pecl install swoole
pecl install redis
로그인 후 복사
로그인 후 복사

memcached 설치:

Build process completed successfully
Installing '/usr/lib64/php/modules/swoole.so'
install ok: channel://pecl.php.net/swoole-1.9.11
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini
로그인 후 복사
로그인 후 복사

먼저 설치해야 합니다:

[swoole]
extension = /usr/lib64/php/modules/swoole.so
로그인 후 복사
로그인 후 복사
# 🎜🎜#yum/apt-get을 사용하여 php 설치

개발 환경을 빠르게 설정하려면 yum을 사용하여 설치할 수 있습니다.

kill -HUP 旧/新版主进程号
로그인 후 복사
로그인 후 복사

yum search php를 사용하여 설치할 PHP 관련 확장 프로그램을 쿼리하세요.

우분투인 경우:

kill -QUIT 旧/新主进程号
로그인 후 복사
로그인 후 복사

15.9MB 아카이브를 다운로드해야 합니다.

압축해제 후 57.7MB의 추가 공간이 소모됩니다.

#🎜🎜#계속하시겠습니까? [Y/n] #🎜🎜##🎜🎜#php-pear에는 pecl이 포함되어 있고, php-dev에는 phpize가 포함되어 있으며, pecl은 phpize에 종속됩니다. #🎜🎜##🎜🎜#yum을 사용하여 설치된 PHP의 경우 해당 구성 파일은 다음 위치에 있습니다. #🎜🎜#
kill -TERM 旧/新工作进程号
로그인 후 복사
로그인 후 복사
#🎜🎜#ubuntu는 centos와 다르며 php.ini는 다음 위치에 별도로 저장됩니다. /etc/php7 /cli/php.ini 및 /etc/php7/fpm/php.ini. 주의가 필요합니다. #🎜🎜##🎜🎜#yum으로 설치할 수 없는 확장 프로그램은 pecl을 사용하여 설치할 수 있습니다. pecl을 컴파일해야 하므로 먼저 컴파일러를 설치해야 합니다: #🎜🎜#
yum install -y gcc gcc-c++ make cmake bison autoconf
로그인 후 복사
로그인 후 복사

然后:

pecl install swoole
pecl install redis
로그인 후 복사
로그인 후 복사

pecl安装扩展完成后会提示添加so文件到php.ini。示例:

Build process completed successfully
Installing '/usr/lib64/php/modules/swoole.so'
install ok: channel://pecl.php.net/swoole-1.9.11
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini
로그인 후 복사
로그인 후 복사

添加示例:

[swoole]
extension = /usr/lib64/php/modules/swoole.so
로그인 후 복사
로그인 후 복사

使用php -m可以查看安装的扩展。

信号管理

不重载配置启动新/旧工作进程

kill -HUP 旧/新版主进程号
로그인 후 복사
로그인 후 복사

从容关闭旧/新进程

kill -QUIT 旧/新主进程号
로그인 후 복사
로그인 후 복사

如果此时报错,提示还有进程没有结束就用下面命令先关闭旧/新工作进程,再关闭主进程号:

kill -TERM 旧/新工作进程号
로그인 후 복사
로그인 후 복사

升级、添加或删除模块时,我们需要停掉服务器

kill -USR2 旧版程序的主进程号或进程文件名
로그인 후 복사

MySQL

如果存在旧版本,需要先卸载旧版本。

使用下面的命令检查是否安装有MySQL Server

rpm -qa | grep mysql
로그인 후 복사

有的话通过下面的命令来卸载掉

rpm -e mysql   //普通删除模式
rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
로그인 후 복사

安装

安装编译代码需要的包

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel
로그인 후 복사

下载MySQL 5.6.14:

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
tar xvf mysql-5.6.14.tar.gz
cd mysql-5.6.14
로그인 후 복사

编译安装

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci\
-DMYSQL_USER=mysql
make && make install
로그인 후 복사

编译的参数可以参考

http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

整个过程需要30分钟左右……漫长的等待

配置MySQL

设置权限

使用下面的命令查看是否有mysql用户及用户组

cat /etc/passwd 查看用户列表
cat /etc/group  查看用户组列表
로그인 후 복사

如果没有就创建

groupadd mysql
useradd -g mysql mysql
로그인 후 복사

修改/usr/local/mysql权限

chown -R mysql:mysql /usr/local/mysql
로그인 후 복사

修改/usr/local/mysql权限

初始化配置

进入安装路径

cd /usr/local/mysql
로그인 후 복사

进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表

scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
로그인 후 복사

注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!

注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。

启动MySQL

添加服务,拷贝服务脚本到init.d目录,并设置开机启动

cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start  --启动MySQL
로그인 후 복사

配置用户

MySQL启动成功后,root默认没有密码,我们需要设置root密码。

设置之前,我们需要先设置PATH,要不不能直接调用mysql

修改/etc/profile文件,在文件末尾添加

PATH=/usr/local/mysql/bin:$PATH
export PATH
로그인 후 복사

关闭文件,运行下面的命令,让配置立即生效

source /etc/profile
로그인 후 복사

现在,我们可以在终端内直接输入mysql进入,mysql的环境了

执行下面的命令修改root密码

mysql -uroot  
mysql> SET PASSWORD = PASSWORD('123456');
로그인 후 복사

若要设置root用户可以远程访问,执行

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
로그인 후 복사

红色的password为远程访问时,root用户的密码,可以和本地不同。

配置防火墙

防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口

打开/etc/sysconfig/iptables

在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
로그인 후 복사

然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart
로그인 후 복사

OK,一切配置完毕,你可以访问你的MySQL了~

注意:

CentOS 7中默认使用Firewalld做防火墙,所以修改iptables后,在重启系统后,根本不管用。

Firewalld中添加端口方法如下:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
로그인 후 복사

常见问题

1、编译PHP提示easy.h should be in /include/curl/

如果是centos:

yum install curl curl-devel
로그인 후 복사

如果是ubuntu:

apt-get install libcurl4-gnutls-dev
로그인 후 복사

如果还是没有解决,直接编译curl:

wget http://curl.haxx.se/download/curl-7.37.0.tar.gz
tar zxvf curl-7.37.0.tar.gz
cd curl-7.37.0.
./configure --prefix=/usr/local --enable-shared 
make
make install
로그인 후 복사

위 내용은 CentOS에서 PHP7+Nginx+MySQL을 설치하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

센토스로 중국어 입력하는 방법 센토스로 중국어 입력하는 방법 Apr 07, 2024 pm 08:21 PM

CentOS에서 중국어 입력을 사용하는 방법에는 fcitx 입력 방법 사용: fcitx 설치 및 활성화, 단축키 설정, 단축키를 눌러 입력 방법 전환, 병음을 입력하여 후보 단어 생성 등이 있습니다. iBus 입력 방법 사용: iBus를 설치 및 활성화하고, 단축키를 설정하고, 단축키를 눌러 입력 방법을 전환하고, 병음을 입력하여 후보 단어를 생성합니다.

centos7에서 USB 디스크 파일을 읽는 방법 centos7에서 USB 디스크 파일을 읽는 방법 Apr 07, 2024 pm 08:18 PM

CentOS 7에서 U 디스크 파일을 읽으려면 먼저 U 디스크를 연결하고 장치 이름을 확인해야 합니다. 그런 다음 다음 단계를 사용하여 파일을 읽습니다. USB 플래시 드라이브 마운트: mount /dev/sdb1 /media/sdb1("/dev/sdb1"을 실제 장치 이름으로 대체) USB 플래시 드라이브 파일 찾아보기: ls /media /sdb1; cd /media /sdb1/디렉토리;

SCP 사용 팁 - 파일을 재귀적으로 제외 SCP 사용 팁 - 파일을 재귀적으로 제외 Apr 22, 2024 am 09:04 AM

scp 명령을 사용하여 네트워크 호스트 간에 파일을 안전하게 복사할 수 있습니다. 데이터 전송 및 인증을 위해 SSH를 사용합니다. 일반적인 구문은 다음과 같습니다: scpfile1user@host:/path/to/dest/scp -r/path/to/source/user@host:/path/to/dest/scp 파일 제외 scp 명령을 사용할 때는 할 수 없을 것 같습니다 파일을 필터링하거나 제외합니다. 그러나 파일을 제외하고 SSH를 사용하여 안전하게 복사하는 좋은 해결 방법이 있습니다. 이 페이지에서는 scp를 사용하여 디렉터리를 반복적으로 복사할 때 파일을 필터링하거나 제외하는 방법을 설명합니다. rsync 명령을 사용하여 파일을 제외하는 방법 구문은 다음과 같습니다: rsyncav-essh-

centos 로그인 비밀번호를 잊어버린 경우 어떻게 해야 하나요? centos 로그인 비밀번호를 잊어버린 경우 어떻게 해야 하나요? Apr 07, 2024 pm 07:33 PM

잊어버린 CentOS 비밀번호에 대한 해결 방법은 다음과 같습니다. 단일 사용자 모드: 단일 사용자 모드로 들어가서 passwd root를 사용하여 비밀번호를 재설정합니다. 복구 모드: CentOS Live CD/USB에서 부팅하고 루트 파티션을 마운트하고 비밀번호를 재설정합니다. 원격 액세스: SSH를 사용하여 원격으로 연결하고 sudo passwd root로 비밀번호를 재설정합니다.

centos7에서 루트 권한을 활성화하는 방법 centos7에서 루트 권한을 활성화하는 방법 Apr 07, 2024 pm 08:03 PM

CentOS 7은 기본적으로 루트 권한을 비활성화합니다. 다음 단계에 따라 활성화할 수 있습니다. 임시 활성화: 터미널에 "su root"를 입력하고 루트 비밀번호를 입력합니다. 영구적으로 활성화됨: "/etc/ssh/sshd_config"를 편집하고 "PermitRootLogin no"를 "yes"로 변경한 후 SSH 서비스를 다시 시작합니다.

centos7에서 루트 권한을 얻는 방법 centos7에서 루트 권한을 얻는 방법 Apr 07, 2024 pm 07:57 PM

CentOS 7에서 루트 권한을 얻는 방법에는 여러 가지가 있습니다. 1. "su"를 사용하여 명령을 실행합니다. 2. 단일 명령을 실행하려면 "sudo"를 사용하십시오. 3. 루트 사용자를 활성화하고 비밀번호를 설정합니다. 참고: 루트 권한을 사용할 때는 시스템이 손상될 수 있으므로 주의하십시오.

CentOS에서 루트 권한을 입력하는 방법 CentOS에서 루트 권한을 입력하는 방법 Apr 07, 2024 pm 08:06 PM

CentOS에서 루트 권한으로 작업을 수행하는 방법에는 두 가지가 있습니다. 1) sudo 명령을 사용하여 일시적으로 루트 권한을 얻습니다. 2) 루트 사용자 비밀번호를 사용하여 직접 로그인합니다. 루트 권한을 사용할 때는 각별히 주의해야 하며 필요한 경우에만 사용하는 것이 좋습니다.

Centos에서 게이트웨이를 구성하는 방법 Centos에서 게이트웨이를 구성하는 방법 Apr 07, 2024 pm 08:51 PM

CentOS를 게이트웨이로 구성하려면 다음 단계를 수행해야 합니다. 1. 네트워크 인터페이스를 구성하고 GATEWAY 값을 추가합니다. 2. 기본 게이트웨이를 설정하고 DNS 정보를 지정합니다. 3. 네트워크 서비스를 시작합니다. 5. 게이트웨이를 통한 트래픽을 허용하도록 방화벽을 구성합니다(선택 사항).

See all articles