>  기사  >  백엔드 개발  >  php7을 사용하여 MAC에서 LNMP 환경을 구축하는 방법

php7을 사용하여 MAC에서 LNMP 환경을 구축하는 방법

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-06-11 09:27:021745검색

이 글에서는 php7을 사용하여 MAC에서 LNMP 환경을 구축하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

php7을 사용하여 MAC에서 LNMP 환경을 구축하는 방법

1. MySQL 설치:

사용 가능한 MySQL 버전 정보 확인:

brew info mysql

여기에 표시된 버전은 5.7.10입니다.

mysql: stable 5.7.10 (bottled)

다음으로 MySQL 5.7.10을 설치합니다.

brew install mysql

설치가 완료되면 plist 파일을 ~/Library/LaunchAgents/에 넣고 로드하라는 메시지를 따릅니다. 시작 시 MySQL이 시작되도록 설정:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents

MySQL 시작:

mysql.server start

시작 후 MySQL은 기본적으로 비밀번호를 설정하지 않으므로 다음을 수행해야 합니다. 루트 비밀번호 설정:

mysql -uroot -p

비밀번호를 입력하라는 메시지가 표시되면 Enter를 눌러 로그인하면 됩니다. MySQL에 로그인한 후 프롬프트는 다음과 같습니다.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10 Homebrew

다음으로 루트 비밀번호를 설정합니다.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

강력한 비밀번호를 설정하는 것이 가장 좋습니다. 강력한 비밀번호에 대한 규칙, 공식 다음 지침이 있습니다.

Note
MySQL's validate_password plugin is installed by default. This will require that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters.

사용 편의성을 위해 우리는 종종 모든 연결에 대해 루트 사용자를 생성합니다.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass4!' WITH GRANT OPTION;

명령을 수행하기 위한 권한 새로 고침 적용:

flush privileges;

MySQL 종료: 종료 PHP 7.1.0-dev (cli) (빌드: 2016년 2월 4일 09:02:09) (ZTS DEBUG) 저작권 (c) 1997-2016 PHP 그룹 Zend 엔진 v3.1.0-dev, 저작권 (c) 1998-2016 Zend Technologies Zend OPcache v7.0.6-dev 사용, Copyright (c) 1999-2016, by Zend Technologies mysql 구성 파일을 복사합니다:

sudo cp /usr/local/Cellar/mysql/5.7.10/support-files/my-default.cnf /etc/my.cnf

/etc/my.cnf에서 [mysqld] 뒤에 lower_case_table_names=1을 추가하고 MYSQL 서비스를 다시 시작합니다. 이제 설정이 완료되었습니다. 테이블 이름은 대소문자를 구분하지 않습니다.

PS.lower_case_table_names 매개변수 세부정보: 0: 대소문자 구분, 1: 대소문자 구분 안 함

2 php7 설치:

①, php7 다운로드. :

mkdir ~/php7 && cd ~/php7
git clone https://git.php.net/repository/php-src.git

②, php7 빌드:

cd php-src
./buildconf

3, php 컴파일:

PS. 컴파일 시 메모리가 1G 미만인 경우 마지막에 --disable-fileinfo를 추가하세요.

php7 설치 시, re2c, bison, ffmpeg , mcrypt, libiconv, gd, openssl을 설치해야 합니다.

re2c 설치:

brew install re2c

bison(3.0.4) 설치:

brew install bison
brew switch bison 3.0.4
brew link bison --force
sudo mv /usr/bin/bison /usr/bin/bison.orig
sudo ln -s /usr/local/bin/bison /usr/bin/bison

ffmpeg 설치:

brew install ffmpeg

openssl 설치:

brew install openssl
brew link openssl --force

Install mcrypt:

brew install mcrypt

libiconv 설치:

brew install libiconv

openssl을 사용하려면 방금 openssl을 설치했지만 시스템에 openssl이 함께 제공되므로 시스템과 함께 제공되는 openssl을 설치된 openssl로 교체해야 합니다.

sudo ln -sf /usr/local/opt/openssl/bin/openssl /usr/bin/openssl

교체가 완료된 후 openssl 버전을 입력하면 위의 내용을 볼 수 있습니다. 저는 Brew와 함께 설치된 openssl을 사용했습니다. 왜냐하면 openssl 헤더는 PHP 컴파일 중에 필요하지만 설치 중에는 사용할 수 없기 때문입니다.

php7 컴파일:

./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin --includedir=/usr/local/php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/usr/local/php7/etc --enable-bcmath --enable-calendar --enable-debug --enable-exif --enable-fileinfo --enable-filter --enable-fpm --enable-ftp --enable-gd-jis-conv --enable-gd-native-ttf --enable-hash --enable-json --enable-libxml --enable-maintainer-zts --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-opcache --enable-opcache-file --enable-pcntl --enable-pdo --enable-session --enable-shared --enable-shmop --enable-simplexml --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-xml --enable-zip --with-bz2 --with-curl --with-fpm-user=www --with-fpm-group=www --with-freetype-dir=/usr --with-gd --with-gettext --with-gmp --with-iconv --with-jpeg-dir=/usr --with-mcrypt=/usr/include --with-mhash --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --with-png-dir=/usr --with-xmlrpc --with-zlib -with-libxml-dir=/usr

컴파일 프로세스 중에 다음 메시지가 표시되면: 헤더 파일 libintl.h를 찾을 수 없습니다. 다음 작업을 수행하십시오.

1, gettext 설치:

brew install gettext

②, 구성 파일 수정:

vi configure

다음 파일을 찾습니다.

for i in $PHP_GETTEXT /usr/local /usr ; do

다음으로 바꾸기:

for i in $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext; do

openssl 오류가 발생하면 컴파일 중에 openssl에 경로를 설정하세요.

--with-openssl=/usr/local/opt/openssl/

4. 완료 후 컴파일 및 설치:

make && make install

여러 가지 방법을 시도하고 SSL 오류가 발생하면 다음을 수행하세요.

⑤ 컴파일 시 openssl을 추가하지 마세요. 설치가 완료된 후 php7을 구성하세요:

sudo ln -s /usr/local/php7/bin/php* /usr/bin/
sudo ln -s /usr/local/php7/sbin/php-fpm /usr/bin
cp php.ini-production /usr/local/php7/etc/php.ini
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
sudo ln -s /usr/local/php7/etc/php.ini /etc/php.ini
sudo ln -s /usr/local/php7/etc/php-fpm.conf /etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

설치가 완료되면 다음 메시지가 표시됩니다:

You may want to add: /usr/local/php7/lib/php/php to your php.ini include_path

다음으로 php.ini를 편집하고,

vi /etc/php.ini

include_path를 찾으세요. , php.ini에 include_path 추가:

include_path = "/usr/local/php7/lib/php/php"

PHP 버전 확인:

php -v

결과는 다음과 같습니다:

PHP 7.1.0-dev (cli) (built: Feb  4 2016 09:02:09) ( ZTS DEBUG )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies

Change 구성, make php7 support opcache 설치가 완료되면 메시지가 표시됩니다:

Installing shared extensions:     /usr/local/php7/lib/php/extensions/debug-zts-20151012/

경로는 확장 패키지 경로입니다. 경로를 복사하고, Extension_dir을 찾아 php.ini에 올바른 경로를 추가하세요.

vi /etc/php.ini

In php.ini Extension_dir 구성을 추가하세요:

extension_dir = "/usr/local/php7/lib/php/extensions/debug-zts-20151012/"

Opcache 확장 활성화:

php에서 opcache를 찾으세요. ini에 opcache.so를 추가하세요

sudo mkdir -p /var/log/opcache
vi /etc/php.ini

opcache.so를 인용하세요:

zend_extension=opcache.so

그리고 opcache의 구성을 수정하세요:

opcache.enable=1opcache.enable_cli=1opcache.file_cache="/var/log/opcache/"

이제 PHP 버전을 확인하세요. 표시되는 정보는 다음과 같습니다:

PHP 7.1.0-dev (cli) (built: Feb  4 2016 09:02:09) ( ZTS DEBUG )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

이제 opcache 확장이 추가되었습니다. , php-fpm 구성 수정:

vi /etc/php-fpm.conf

구성 수정:

pid = run/php-fpm.pid
error_log = log/php-fpm.log

php-fpm 시작:

php-fpm -D

이렇게 하면 두 가지 경고가 표시됩니다.

[04-Feb-2016 09:45:25] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
[04-Feb-2016 09:45:25] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root

php-fpm을 중지하는 명령은 다음과 같습니다.

kill -INT `cat /usr/local/php7/var/run/php-fpm.pid`

php-fpm을 다시 시작하는 명령은 다음과 같습니다.

kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`

다음으로 nginx 설치를 시작합니다:

3 nginx 설치:

brew install nginx

nginx 설치가 완료된 후 기본 루트 경로는 다음과 같습니다.

구성 파일
Docroot is: /usr/local/var/www

nginx의 디렉터리는 다음과 같습니다.

/usr/local/etc/nginx/nginx.conf

nginx 가상 사이트 디렉터리는 다음과 같습니다.

nginx will load all files in /usr/local/etc/nginx/servers/.

부팅 시 nginx 시작:

ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents

nginx 시작:

nginx

nginx는 포트 80을 수신하려면 루트 권한이 필요합니다. 이제 nginx가 수신합니다. 기본적으로 8080 포트:

sudo chown root:wheel /usr/local/Cellar/nginx/1.8.1/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.8.1/bin/nginx

nginx를 구성하려면 먼저 /etc 아래에 nginx 구성 파일을 배치하세요.

sudo ln -s /usr/local/etc/nginx/nginx.conf /etcsudo ln -s /usr/local/etc/nginx/servers /etc/nginxservers

nginx 수신 포트 수정:

sudo vi /etc/nginx.conf

다음과 같이 구성 파일을 수정하세요.

#user  nobody;
worker_processes  4;
error_log  /usr/local/var/log/error.log;
error_log  /usr/local/var/log/error.log  notice;
error_log  /usr/local/var/log/error.log  info;
pid        /usr/local/var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    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  /usr/local/var/log/access.log  main;
    port_in_redirect off;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip  on;

    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    include servers/*.conf;
}

그런 다음 / 아래에 기본값을 만듭니다. etc/nginxservers/.conf, default.conf를 편집하고 다음 내용을 추가하십시오:

server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
             # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
            location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_intercept_errors    on;
                include /usr/local/etc/nginx/fastcgi.conf;
            }
        }
        #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;
        }
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

이 시점에서 LNMP가 설정되었으며 php-fpm 및 nginx를 다시 시작하십시오.

추천 학습: php 비디오 튜토리얼

위 내용은 php7을 사용하여 MAC에서 LNMP 환경을 구축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제