ホームページ  >  記事  >  バックエンド開発  >  php7を使用してMAC上にLNMP環境を構築する方法

php7を使用してMAC上にLNMP環境を構築する方法

醉折花枝作酒筹
醉折花枝作酒筹転載
2021-06-11 09:27:021759ブラウズ

この記事では、php7を使用してMAC上にLNMP環境を構築する方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

php7を使用してMAC上にLNMP環境を構築する方法

1. MySQL をインストールします:

MySQL の利用可能なバージョン情報を確認します:

brew info mysql

ここで表示されるバージョンは 5.7.10 です :

mysql: stable 5.7.10 (bottled)

次に MySQL5.7.10 をインストールします:

brew install mysql

インストールが完了したら、プロンプトに従って plist ファイルを ~/Library/LaunchAgents/ に配置してロードし、MySQL が開始されるように設定します。 boot:

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

MySQL の起動:

mysql.server start

起動後、MySQL はデフォルトでパスワードを設定しないため、root パスワードを設定する必要があります:

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

次に、root パスワードを設定します:

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.

使いやすさを考慮して、どの接続にも root ユーザーを作成することがよくあります:

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

権限を更新してコマンドを有効にします:

flush privileges;

MySQL を終了: exit; PHP 7.1.0 -dev (cli) (ビルド: 2016 年 2 月 4 日 09:02:09) ( ZTS DEBUG ) Copyright (c) 1997-2016 PHP グループ Zend Engine v3.1.0-dev、著作権 (c) 1998-2016 Zend Technologies Zend OPcache v7.0.6-dev、著作権 (c) 1999-2016、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

③、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

mcrypt のインストール:

brew install mcrypt

libiconv のインストール:

brew install libiconv

openssl を使用する場合は、openssl をインストールしたばかりですが、システムには openssl が付属しているため、システム独自の openssl をインストールされている openssl と置き換える必要があります。 openssl:

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

置き換えが完了したら、openssl のバージョンを入力すると、これが上記の brew でインストールされた openssl であることがわかります。これは、openssl のヘッダーが PHP のコンパイル中に必要になるためですが、インストール中にはインストールされません。

Compile 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 が見つかりません。次の操作を実行してください。

①、gettext をインストールします:

brew install gettext

②、configure ファイルを変更します:

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/

④)。完了後にコンパイルしてインストールします:

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

php.ini の include_path を検索 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

php7 が opcache をサポートするように構成を変更します。インストールが完了すると、プロンプトが表示されます:

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

このパスは拡張機能パッケージのパスです。パスをコピーし、extension_dir を見つけて、そのパスを php に追加します.ini.

vi /etc/php.ini

extension_dir 構成を php.ini に追加します:

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

opcache 拡張機能を有効にします:

php.ini で opcache を見つけ、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

Modify theconfiguration:

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

Start php-fpm:

php-fpm -D

これにより、プロンプトが表示されます。 2 つの警告:

[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`

Restart 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/.

Start nginx on boot:

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

Start nginx:

nginx

nginx には root 権限が必要です。ポート 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 を設定するには、まず nginx 設定ファイルを /etc の下に置きます:

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/ にdefault.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;
        #}
    }

Atこの時点で LNMP が設定されているので、php-fpm と nginx を再起動します。

推奨学習: php ビデオ チュートリアル

以上がphp7を使用してMAC上にLNMP環境を構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。