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

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

醉折花枝作酒筹
풀어 주다: 2023-02-18 06:22:01
앞으로
1819명이 탐색했습니다.

이 글에서는 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿