日曜大工MODxの適切なホスティング



トピックでは、MODx Revolutionの高速で安価なホスティングのセットアップについて説明します。 原則として、ここで説明する事項は一般的なものであるため、この情報はあらゆる CMSに適していますこのマニュアルのビデオ版は後にマウントされました。



念のため、MODx Revo管理パネルがどのように機能するかについてのビデオを添付します。



迅速で快適な作業のために、次のことが望ましいです。





投稿の最後に、ユーザー、nginxホスト、php5-fpmプロセス、メロンデータベースを作成するMODxの自動インストール用のスクリプトへのリンクがあります。





私はさまざまなホスティングサービスで働きました。 彼はPeterhostで始め、 ClodoSelectel 、そして並行してScalaxyに移りましたHetznerとも少し働きました。



誰もが良いのですが、主観的な観点から、私はSelectelクラウドがより好きです。



「マルチブック」が判明したため、目次を次に示します。

1. OSのインストールとsshのセットアップ

2. サービスのインストール

3. 環境のセットアップ

4. サービス設定

5. 結論





OSのインストールとsshのセットアップ



selectel.ruに登録し、パネルに移動して、「クラウド」があり、車を作成します。







インストールには、Ubuntu x32(x64よりも少ないメモリを使用)を使用します。 OSのインストールには、「インストールパスワード」を探しているマシンのプロパティで約15分かかります。 これはルートパスワードです。



Puttyを介してサーバーにアクセスします。 翻訳設定で、UTF-8を設定します。

ユーザー:root

パスワード:パネルから



まず、新しいユーザーを作成してsudoグループに追加します。

adduser user adduser user sudo
      
      





次に、ルートの下のサーバーへの入り口を切り落とします。

 nano /etc/ssh/sshd_config
      
      





PermitRootLogin noを設定します。ここで 、sshを別のポートに再ハングできますが、私はしません。



sshを再起動します。

 service ssh restart
      
      





これで、ユーザーとしてログインしてsudoを操作できます。

最初に

 sudo apt-get install mc
      
      



インストール後
 sudo mc
      
      



-これは、 Midnight Commanderを終了するまで、 sudoを介してサーバー上で動作します。



この時点で、ほとんどのLinux以外のユーザーは、黒いコンソールではなく、青いウィンドウを見るとかなりきれいです。 また、 Ctrl + Oを押すと、コンソールがすぐに表示されます



これからは、 sudoを使用せずにコマンドを入力できます-mcからすでに作業中です。



ファイアウォールを少し構成します。



iptablesファイルを作成し( touch / root / iptables )、次の行を追加します。

 iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 30 -j DROP iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
      
      





これは、パスワードクラッカーからの22番目のポートの保護です。 再試行が失敗するたびに、30秒後にのみ(増加可能)-これらの速度では何も取得できません。 さらに、ユーザー名を推測する必要があります(root、無効にしました)。



実行可能にする-sudo chmod + x / root / iptables

そして、/ etc / rc.localにあるこのファイルを呼び出すと、起動時にスクリプトが呼び出されます。 一般に、起動時に実行したいのはここに書くことだけです。



リポジトリ



python-software-propertiesを配置して、リポジトリを便利に追加します

 apt-get install python-software-properties
      
      





Nginxおよびphp5-fpmリポジトリを追加します

 add-apt-repository ppa:nginx/stable add-apt-repository ppa:fabianarias/php5 apt-get update apt-get install nginx php5-fpm mysql-server php5-mcrypt php5-mysql php5-curl php-db php5-gd unzip
      
      





インストール中に、 Mysqlの管理パスワードを入力する必要があります。より複雑なパスワードを思いついて、覚えて入力してください。



サイトからメールを送信するようにsendmailを設定することもできますが、Revoでは、 smtpサーバーと直接連携してメールを送信できます。これを設定することをお勧めします。 YandexまたはGoogleからのドメインのメールをすぐに接続することをお勧めし ます



仕事の半分が完了しました。



環境の準備



想像のとおり、サーバーはApache2なしでphp5-fpmを介してphpを実行します。



これにより、2つの利点が得られます。メモリ消費量の削減と、異なるユーザーからの異なるサイトの起動です。 つまり、1つのサイトをハッキングする場合、残りのサイトは影響を受けません。



サーバーにFTPをまったくインストールしませんでした。SFTPを介してサイトファイルをアップロードし(このためにWinCSPを使用)、Notepad ++を使用して編集するためです(そこにはsftpのプラグインがあります)。



sftpグループ(addgroup sftp)を作成し、sshを介したアクセスを構成します。

/ etc / ssh / sshd_configを最後に追加します

 Subsystem sftp internal-sftp Match Group sftp ChrootDirectory %h AllowTCPForwarding no ForceCommand internal-sftp
      
      





そこにコメントする

 #Subsystem sftp /usr/lib/openssh/sftp-server
      
      





将来のサイト用の新しいディレクトリ(および一時ファイル用のディレクトリ)を作成し、そのユーザーを作成し、sftpグループに追加して、ホームディレクトリを割り当てます。

 mkdir /var/www mkdir /var/www/site1 mkdir /var/www/site1/www mkdir /var/www/site1/tmp adduser site1 adduser site1 sftp usermod -d /var/www/site1 site1
      
      





ディレクトリがあり、ユーザーがおり、 sftpを介した彼へのアクセスがあります。



サービスのセットアップ



phpを設定するには、 /etc/php5/fpm/php.iniを編集する必要があります。

 post_max_size = 100M upload_max_filesize = 100M disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source cgi.fix_pathinfo = 0 open_basedir = /var/www/
      
      





メインの設定ファイルNginx (/etc/nginx/nginx.conf)は、このタイプ(古いバックアップ)に縮小されます。

 user www-data; worker_processes 8; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; client_max_body_size 100m; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain ext/html text/xml application/xml application/x-javascript text/javascript text/css text/json; gzip_disable "msie6"; gzip_comp_level 8; charset utf-8; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
      
      





/ etc / nginx / fastcgi_paramsの隣に、httpsについての行にコメントします。そうでなければ、誓います。

 #fastcgi_param HTTPS $server_https;
      
      





Nota Bene! 仮想ホストを作成します。

私たちの設定は、ディレクトリ/ etc / nginx / sites-enabled /からサイトをロードし、次は/ etc / nginx / sites-available /です( デフォルトのサイトへのリンクがあります -それを打ちます)。

最初のディレクトリには、2番目のディレクトリの設定ファイルへのアクティブサイトのシンボリックリンクが含まれています。 このアプローチにより、編集せずに、そして単にシンボリックリンクを作成して削除することにより、仮想ホストをすばやく有効/無効にすることができます。



標準サイト構成/etc/nginx/sites-available/site1.conf

 upstream backend-site1 {server unix:/var/run/php5-site1.sock;} server { listen 80; server_name site1.domain.ru; root /var/www/site1/www; access_log /var/log/nginx/site1-access.log; error_log /var/log/nginx/site1-error.log; index index.php; rewrite_log on; location /core/ { deny all; } location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-site1; } location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ { access_log off; expires 10d; break; } location ~ /\.ht { deny all; } }
      
      





フレンドリーURL、静的リターン、php5-fpmによるphp処理がすぐにここに含まれ、バックエンドが宣言されます(構成の1行)。

次のサイトは、この構成をコピーし、site1をsite2に変更するだけで作成できます。



構成を作成したら、構成へのシンボリックリンクを作成することを忘れないでください。

 ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/site1.conf
      
      







Nota Bene! サイトのphp5-fpmプロセスを作成します。

/etc/php5/fpm/main.confのメイン構成は変更せず、ファイルの最後に行があることを確認してください

 include=/etc/php5/fpm/pool.d/*.conf
      
      







これは、php5-fpmプロセス構成ディレクトリから接続します。 サイトの構成では、処理のために* .phpをアドレス/var/run/php5-site1.sockに送信することを既に示しました。 次に/ etc / php5 / fpm / pool.d / site1.conf構成を作成します。

 [site1] listen = /var/run/php5-site1.sock listen.mode = 0666 user = site1 group = site1 chdir = /var/www/site1 php_admin_value[upload_tmp_dir] = /var/www/site1/tmp php_admin_value[soap.wsdl_cache_dir] = /var/www/site1/tmp php_admin_value[date.timezone] = Europe/Moscow #    ,       pm = dynamic pm.max_children = 10 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 4
      
      





どこでもパスの正確性を慎重に確認し、サービスを再起動します。

 service nginx restart service php5-fpm restart
      
      







おわりに



テキストのフットクロスが注目に値することが判明したので、 ここでサイトのインストールについて読んでください。何が起こったのかを少しお話しします。



クラウド上に高速で低コストのサーバーをセットアップします。消費料金がかかり、リソースを非常に経済的に消費します。 必要なサイトを追加するには:

1.サイトのディレクトリとユーザーを作成し、ユーザーをsftpグループに追加します。

2.前のもののイメージでNginxとphp5-fpmの2つの構成を作成します。

3.サイトをインストールし、ユーザーをホストファイルとして指定します。







このようなサーバーに7つの小さなサイトがぶら下がっています。 250〜300mbのRAMを消費し(これはselectelパネルで設定されます)、1日あたり約8〜10ルーブルかかります。 小さなhabraeffectを経験したとき私は1日あたりわずか20ルーブルを支払いました。



サイトは相互に分離されており、それぞれが制限された権限を持つ独自のユーザーから機能します。 同じユーザーがsftpを通過します-管理パネルでftpを介してアップロードされたファイルの編集に問題はありません。



Webインターフェイスを介したサイトとその構成の管理を簡素化するには、 Ajenti最適です。 まあ、一般的に、それは多くのことをすることができます。



一般に、MODx Revolutionで快適に作業するために、1か月あたり300ルーブルのホスティングを作成する方法をアクセシブルな方法で記述しようとしました。



何かが間違っている場合-コメントで私を修正してください。



PSディレクトリ\ファイルにアクセス許可を割り当てるためスクリプト。 / var / www / site1 / chmodに保存することをお勧めします

 #!/bin/bash user=site1 dir=/var/www/$user/www chown -R $user:$user "$dir"; find "$dir" -type d -exec chmod 0755 '{}' \; find "$dir" -type f -exec chmod 0644 '{}' \;
      
      







PPS

悲惨なことに、再び地獄が始まりました。 Revoを見たことがない人は、Revoが何であるかを語ります。

申し訳ありませんが、ホリバーはそれを取得し、トピックは残酷に編集されました。

古いバージョンからの引用はコメントをスキップします。



ホスティングのセットアップに関する記事を執筆しましたが、MODxで作業したことはないが、ビデオによって信頼できると判断された個々のコメンテーターのために、ドラフトでそれを隠す気はありません。



警告!

コメントでは、ベテランのトロールdmitriidはしゃぎます。 私はあなたに懇願します、彼を養わないでください!



更新しました。 jkentersからの自動インストール\アンインストール用のRedidスクリプト



これらのスクリプトを使用する場合は、サーバーにパッケージをインストールし、この記事のssh、php、およびメインのnginx構成を構成するだけで済みます。 スクリプトは残りを自動的に実行します。

スクリプト作業ビデオ



MODxを適切にインストールするには、/ etc / php5 / cli / php.iniでdate.timezoneを指定する必要があります

 date.timezone = Europe/Moscow
      
      






All Articles