PHP-FPMを使用したpfsenseでのFAMP

この記事は、FAMPの例を使用してpfsenseにネイティブではないパッケージをインストールする可能性を検討した私の出版物の続きです。 この機会には欠陥がないわけではありません:

1.非ネイティブphpパッケージをインストールすると、ネイティブライブラリと依存関係が変更され、phpの警告(無効にすることができます)が発生し、チェックサム検証段階で大規模なネイティブアプリケーションをインストールしようとすると、グリッチが発生します。 さらに、小さなpfsenseアプリケーションは問題なくインストールされました。

2.シェル内でシェルが発生する欠落したBSD起動スクリプトを作成する必要がありました。

3. pfsense webmordとの統合の欠如。



新しい記事では、以降の出版物でプロジェクトをネイティブpfsenseアプリケーションに近づけることにより、上記の欠点を修正しようとします。

最初の欠点は、システム内のすべてのサービスがphp-fpm cliに関連付けられていることですが、同じ欠点を使用してfastcgi経由でWebサーバーでphpを実行することもできます。これにより、Apacheのphp5_moduleが軽減され、サイトのパフォーマンスが向上します。

もう1つの良い点は、純粋な形式のネイティブApacheはありませんが、ApacheベースのModSecurityアセンブリがあるということです。

説明で述べたように、ModSecurityは組み込みまたはリバースプロキシとして機能するように設計されたWebベースのファイアウォールアプリケーションであり、pfsenseがホストするWebサーバーへのリダイレクトに使用されます。

よく調べてみると、このパッケージを特定の操作を使用して本格的なApacheに変換できることが明らかになりました。

合計で、FAMPの2つのコンポーネント、つまりApacheとPHPがあり、これらはpfsenseにネイティブです。

mysqlではより複雑です。ネイティブパッケージには含まれていません。 しかし、高度なphpにはmysql.soという拡張子があります。 mysqlをインストールし、pfsense Webマズルでサービスを開始および停止する機能を組み込みます。



Web管理者で

lighttpdに基づいてwebmordからポート80を解放し、sshdを有効にします。

mod_security_devを使用して最初のApacheパッケージをインストールします



Mysql。 コンソールで

pkg update pkg install mysql56-server
      
      







設定ファイル/usr/local/etc/my.cnfを作成します

 [client] port = 3306 socket = /var/tmp/mysql.sock default-character-set = utf8 [mysqld] port = 3306 socket = /var/tmp/mysql.sock init-connect='SET NAMES utf8' collation_server = utf8_unicode_ci character_set_server = utf8 character_set_client = utf8 character_set_filesystem = utf8
      
      







ユーザーベースをインストールする

 /usr/local/bin/mysql_install_db --basedir=/usr/local --defaults-extra-file=/usr/local/etc/my.cnf --datadir=/var/db/mysql —force
      
      







起動スクリプト/usr/local/etc/rc.d/mysql.shを作成します

 #!/bin/sh rc_start() { if [ ! -f /var/run/mysql/mysql.pid ] then mkdir /var/run/mysql chown -R mysql:mysql /var/run/mysql /usr/local/libexec/mysqld --defaults-extra-file=/usr/local/etc/my.cnf --user=mysql --datadir=/var/db/mysql --pid-file=/var/run/mysql/mysql.pid fi } rc_stop() { if [ -f /var/run/mysql/mysql.pid ]; then PID=`cat /var/run/mysql/mysql.pid` kill $PID else killall mysqld 2>/dev/null fi } case $1 in start) rc_start ;; stop) rc_stop ;; restart) rc_stop rc_start ;; esac
      
      





実行ビットと権利

 chmod 755 /usr/local/etc/rc.d/mysql.sh chown -R mysql:mysql /var/db/mysql
      
      







apacheの後に/cf/config.xmlにサービスを追加します



 <service> <name>mysql</name> <rcfile>mysql.sh</rcfile> <executable>mysqld</executable> <description><![CDATA[Mysql server]]></description> </service>
      
      







設定キャッシュを削除する

 rm /tmp/config.cache
      
      







私たちはウェブカメラの下に行きます

ステータス-サービス

そして、(開始/停止)mysqlサービスをテストします



PHP スクリプト/etc/rc.php_ini_setupに追加します

前; 拡張機能

 mbstring.internal_encoding = UTF-8 mbstring.func_overload = 2
      
      







後; 拡張機能

 extension = mysql.so extension = gd.so
      
      







以下では、同じファイルでphp-fpmの設定を変更します

 listen = /var/run/php-fpm.socket listen.owner = www listen.group = www listen.mode = 0660
      
      







Apache設定

Webカメラで、仮想ホストのユーザーを作成します。

システム-ユーザーマネージャー-グループ-wwwグループの追加

[ユーザー]タブ-wwwグループにユーザーbitrixを追加します

システム-パッケージ-FileManagerのインストール

FileManagerを使用して、Webコンテンツのディレクトリ/ home / bitrix / wwwを作成します

サービス-Mod_Security-仮想ホスト-新しいホストを追加します。

有効にする

プロトコル= Http

サーバー名= bitrix.ru

www.bitrix.ru

カスタムオプション:



 <Directory "/home/bitrix/www"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all Require all granted </Directory> DirectoryIndex index.php index.html LoadModule proxy_module libexec/apache24/mod_proxy.so LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php-fpm.socket|fcgi://127.0.0.1/home/bitrix/www
      
      







再起動して、テストファイル/home/bitrix/www/test.phpを監視します

 <?php phpinfo(); ?>
      
      







クライアントマシンで、 / etc / hostsの編集を忘れないでください

 192.168.100.1 bitrix.ru
      
      







それだけですが、ほとんどのCMSにはphp55-GDグラフィックパッケージが必要です。

これは、インストール中にphp55自体を含む依存関係をプルしますが、これは良くありません。

したがって、依存関係のみを配置します。



 pkg install freetype2 jpeg libxml2 pcre png t1lib libXaw xproto printproto libXpm libXext xextproto libXau libX11 libxcb libXdmcp libpthread-stubs kbproto libXt libSM libICE libXp libXmu
      
      







パッケージ自体がシステムのルートで展開します

 cd / fetch http://pkg.freebsd.org/freebsd:9:x86:64/latest/All/php55-gd-5.5.22.txz tar xpf php55-gd-5.5.22.txz rm php55-gd-5.5.22.txz
      
      







CMSを再起動してインストールします。

 fetch http://www.1c-bitrix.ru/download/business_encode_php5.tar.gz tar xpf business_encode_php5.tar.gz
      
      





Bitrixの場合、エラーが1つあります。

.Htaccess処理-オフ

php-fpmとセキュリティの問題が原因で発生します。 これはBitrix自体の監視です。 エラーを無視します。



実用的なソリューションを得ました。 統合されたpfsenseサービス。 便利なWebベースの管理。



All Articles