ホームページ バックエンド開発 PHPチュートリアル ソースコードによるLNMP環境構築の流れ(詳細)

ソースコードによるLNMP環境構築の流れ(詳細)

Aug 09, 2018 am 10:39 AM
lnmp

この記事の内容は、LNMP による環境構築の過程をソースコード形式で記録したものです (詳細) 一定の参考価値がありますので、困っている方は参考にしていただければ幸いです。 。

LNMP は、Linux 上で PHP MYSQL NGIX を使用して Web サイトを構築するための環境を指します。

Nginx は、高性能 HTTP サーバー、リバース プロキシ サーバー、および IMAP/POP3/SMTP プロキシ サーバーです。 Nginx は Web サーバーとしてだけでなく、ロードバランサーとしても使用できます。

MySQL は、オープン ソースの無料データ ソフトウェアです。MySQL は、小規模なリレーショナル データベース管理システムです。サイズが小さく、速度が速く、総所有コストが低くなります。特にオープン ソースの特性により、 , 多くの中小規模の Web サイト Web サイトの総所有コストを削減するために、Web サイトのデータベースとして MySQL が選択されました.

PHP は、英語のハイパーテキスト前処理言語 Hypertext Preprocessor の略称です。 PHP は HTML 埋め込み言語です. サーバー側で実行され、HTML ドキュメントに埋め込まれるスクリプト言語です. ソースコードは C 言語で記述されているため、スタイルは C 言語に似ており、建築分野で広く使用されています。 Webサイト。

以下はLNMP環境の構築手順の記録であり、対象となるLinux環境はCentOsの仮想イメージです。

[Nginx インストール]

Nginx の最新の安定バージョンは 1.14.0 です。Web サイトのアドレスは http://nginx.org/en/download.html です。直接ダウンロードできます。 Windows では rz を Linux にアップロードするか、wget を使用して直接ダウンロードできますが、以下に示すダウンロード方法は後者です。

cd /usr/src          #一般将源码放在此目录下
wget http://nginx.org/download/nginx-1.14.0.tar.gz  #安装
ログイン後にコピー

注: nginx のインストールは zlib-devel pcre-devel openssl-devel パッケージに依存するため、nginx をインストールする前にこれらのパッケージをインストールする必要があります。インストールプロセス中。

yum -y install zlib-devel pcre-devel openssl-devel
ログイン後にコピー

...

一般的なソース コードのインストールは 4 つのステップに分かれています。 (tarコマンド)Precompile(ソースパッケージの下でconfigureを実行)、Compile(make)、コンパイルとインストール(make install)。

1. Unzip

tar -zxvf nginx-1.14.0.tar.gz   #这里解释下加压参数,z代表gzip(也就是后面的.gz文件)x代表加压,v表示显示详细信息,-f使用档案文件或设备(必选参数)
ログイン後にコピー


2. プリコンパイル

プリコンパイルするとき、通常、パラメーターは次の値を達成します。特定の機能を有効にする、または特定の機能を無効にするなど、インストールしたいエフェクト:

プリコンパイル用のソース パッケージ ディレクトリを入力します:

cd nginx-1.14.0
 ./configure --prefix=/data/webserver/nginx\   # 指定安装目录为/usr/local/nginx
--with-openssl=/usr/include/openssl\  # 启用ssl
--with-pcre\                          # 启用正规表达式
--with-http_stub_status_module        # 安装可以查看nginx状态的程序
ログイン後にコピー

…. ..

3.

./configure のコンパイルは、現在のディレクトリで

configure ファイルを実行することを意味します。コンパイルしてインストールできます:

make   #编译
ログイン後にコピー

....

4. インストール

make install #安装
ログイン後にコピー

.....

インストールが完了したら、対応するディレクトリに移動して、インストールされているファイルを表示できます。


ls /data/webserver/nginx
ログイン後にコピー

次に、nginx を起動できます:

/data/webserver/nginx/sbin/nginx   #启动nginx

/data/webserver/nginx/sbin/nginx -s stop #停止nginx

/data/webserver/nginx/sbin/nginx -s relaod #重启nginx
ログイン後にコピー


#ご覧のとおり画像では、nginx が起動しています


netstat -antlp ¦ grep 80  #nginx占用TCP的80端口由图也可知nginx已启动
ログイン後にコピー

[MySQL インストール]

この時点で、nginx がインストールされ、起動されています。 MySQL。同様に、最初に MySQL 依存関係パッケージをインストールする必要があります。:

yum -y install wget  cmake gcc gcc-c++ ncurses  ncurses-devel  libaio-devel  openssl openssl-devel
ログイン後にコピー

....

次に、ソース コードをダウンロードします。 :

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.11.tar.gz
ログイン後にコピー

.. ......

mysql ユーザーを作成します:

 groupadd mysql
 useradd -r -g mysql -s /bin/false mysql
ログイン後にコピー

インストール ディレクトリとデータ ディレクトリを作成します:

mkdir -p /usr/local/mysql
mkdir -p /data/mysql
ログイン後にコピー

ソース コード パッケージを解凍します:

 tar -zxf mysql-boost-8.0.11.tar.gz -C /usr/local
ログイン後にコピー

编译&安装:

cd /usr/local/mysql-8.0.11
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DSYSCONFDIR=/etc 
-DMYSQL_TCP_PORT=3306 
-DWITH_BOOST=/usr/local/mysql-8.0.11/boost 
make  && make install
ログイン後にコピー

安装成功后我们可启动mysql:

cd /usr/local/mysql
bin/mysqld_safe --user=mysql
ログイン後にコピー

启动成功,连接mysql

bin/mysql -uroot -p
ログイン後にコピー

此时要求输入连接密码,比较旧的版本的mysql安装时默认密码为空,但该5.7之后的版本有默认的密码,由于我们不知道,因此关闭mysql服务后(可直接查询进程根据进程号kill掉或/etc/init.d/mysql stop ),改用跳过密码的方式重新开启mysql服务。

bin/mysqld_safe --user=mysql & skip-grant-tables
ログイン後にコピー

重新连接

bin/mysql -uroot
ログイン後にコピー

连接成功后修改密码

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
ログイン後にコピー

此时重启mysql服务,便可以账号密码方式连接mysql。

【PHP安装】

先安装php依赖包,否则在编译安装php7的过程当中会出现各种报错,安装完成后即可进入下一个环节。

安装扩展包并更新系统内核:

yum install epel-release -y
yum update
ログイン後にコピー

安装php依赖组件(包含Nginx依赖),前面nginx以及mysql安装过的可以忽略,也可以直接复制运行,会跳过已安装的依赖:

yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel 
libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel 
ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel 
cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash 
libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel
ログイン後にコピー


........

创建用户和组,并下载php安装包解压:

cd /tmp
groupadd www
useradd -g www www
wget http://cn2.php.net/distributions/php-7.2.0.tar.gz
tar xvf php-7.2.1.tar.gz
cd php-7.2.0
ログイン後にコピー

设置变量并开始源码编译:

cp -frp /usr/lib64/libldap* /usr/lib/
./configure --prefix=/data/webserver/php \
--with-config-file-path=/data/webserver/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--with-mcrypt \
--with-libmbfl \
--enable-ftp \
--with-gd \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext \
--disable-fileinfo \
--enable-opcache \
--with-pear \
--enable-maintainer-zts \
--with-ldap=shared \
--without-gdbm \
ログイン後にコピー

开始安装

make -j 4 && make install
ログイン後にコピー

完成安装后配置php.ini文件:

cp php.ini-development /data/webserver/php/etc/php.ini
cp /data/webserver/php/etc/php-fpm.conf.default /data/webserver/php/etc/php-fpm.conf
cp /data/webserver/php/etc/php-fpm.d/www.conf.default /data/webserver/php/etc/php-fpm.d/www.conf
ログイン後にコピー

修改 php.ini 相关参数:

vim /data/webserver/php/etc/php.ini

expose_php = Off
short_open_tag = ON
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2
ログイン後にコピー

重启PHP,至此LNMP环境已搭建完成。

相关文章推荐:

Nginx配置fastcgi cache的方法介绍

docker安装php环境的实际操作步骤

以上がソースコードによるLNMP環境構築の流れ(詳細)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

See all articles