今回はFTPでのアップロードを行うが、CurlやWgetでダウンロードしてきた方が早い↓
『WordPress を FTP を使わず Curl でダウンロード、解凍して使う』
vsftpd のインストール
[root@localhost ~]# yum install vsftpd 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile epel/x86_64/metalink | 6.3 kB 00:00:00 * base: ftp.jaist.ac.jp * epel: ftp.jaist.ac.jp ~(中略)~ インストール 1 パッケージ 総ダウンロード容量: 169 k インストール容量: 348 k Is this ok [y/d/N]: y Downloading packages: vsftpd-3.0.2-22.el7.x86_64.rpm | 169 kB 00:00:00 ~(中略)~ 完了しました! [root@localhost ~]#
vsftpd の起動,自動起動設定。
[root@localhost ~]# systemctl start vsftpd [root@localhost ~]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [root@localhost ~]# systemctl status vsftpd ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since 土 2018-08-04 14:05:52 JST; 10s ago ~(中略)~ 8月 04 14:05:52 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon. [root@localhost ~]#
[root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:b9:45:bc brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3(こちらが CentOS ⇒ インターネットへの接続口) valid_lft 85631sec preferred_lft 85631sec inet6 fe80::b2bd:45fe:7c03:39c9/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:48:bb:0c brd ff:ff:ff:ff:ff:ff (ホスト ⇔ ゲスト(CentOS)間の接続口は、まだ繋がっていない) [root@localhost ~]#
現状 CentOS ⇒ インターネットへの接続口(NAT)は繋がっているが、ホストOS(Windows)⇔ ゲストOS(Linux)間の接続口(ホストオンリーアダプター)は繋がっていないので繋げる。
なんのこっちゃという方は VirtualBox の初期設定を思い出してください ↓
3. VirtualBOX に CentOS7を登録する(仮想マシンの初期設定) - 授業のメモ
はてな
CentOS 右下の「ネットワークインターフェース」アイコンをクリック ⇒ 接続の管理。
「enp0s8」を選択し「編集」をクリック。
「接続名」に分かりやすい名前を入れ「自動的に接続する」にチェックを付け「OK」で閉じる。(もしこのとき「KDE ウォレットがうんぬん」と出たら⇒(後で))
未接続の方のネットワークインターフェース ⇒ host-guest をクリック。
「host-guest に接続済み」となればOK
再度 ip a
[root@localhost ~]# ip a ~(前略)~ 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:b9:45:bc brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3 valid_lft 82496sec preferred_lft 82496sec inet6 fe80::b2bd:45fe:7c03:39c9/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:48:bb:0c brd ff:ff:ff:ff:ff:ff inet 192.168.56.101/24 brd 192.168.56.255 scope global noprefixroute dynamic enp0s8 ( ↑ホストからゲストへ接続するための ip アドレス) valid_lft 1147sec preferred_lft 1147sec inet6 fe80::dcce:fc28:cc87:19cb/64 scope link noprefixroute valid_lft forever preferred_lft forever [root@localhost ~]#
FileZilla を開いて各種入力 → 「接続」
プロトコルは FTPでは繋がらず、SFTP でないといけない。vsftpd は Very Secure な FTPデーモンの略だそうで、セキュアじゃない普通のFTPなんかでは繋げてあげないということだと思う。
パスワードを入力して「OK」。
「不明なホスト鍵」の注意書きが出るが、そのまま「OK」(毎度確認するのが面倒なら「常にこのホストを信用し、この鍵をキャッシュに追加」にチェックを付ける)
接続完了。
この後、WordPressのファイルを CentOS の /var/www/html/wordpress/
ディレクトリにアップロードする。
一旦 Linux のコンソールに戻り、/var/www/html/
に wordpress
ディレクトリを作る。(Filezilla からもできるが、Linux の練習として)
[root@localhost ~]# cd /var/www/html/ htmlディレクトリまで移動 [root@localhost html]# ls ディレクトリ内のファイル,フォルダの確認 index.html phpinfo.php [root@localhost html]# mkdir wordpress ディレクトリを新規作成 [root@localhost html]# ls index.html phpinfo.php wordpress wordpressディレクトリができた [root@localhost html]#
下記からWordPress をWindowsにダウンロード。解凍。
FileZilla に戻り、一般ユーザーでの接続を切り root ユーザーで入り直します。一般ユーザーのままアップロードをするとディレクトリの作成権限がないためアップロードは失敗します。
Windows 側は先ほどダウンロード・解凍した wordpress フォルダを開く。Linux 側は / (ルートディレクトリ) から /var/www/html/wordpress と順にクリックし、wordpressディレクトリを開く。
Windows の wordpressフォルダの「中身」を全選択し、アップロードする。
パスワードの入力欄が出たら「FileZilla が終了するまでパスワードを記憶」にチェックを付けておいてください。
アップロード完了。
誤って wordpressフォルダそのものをアップロードしてしまうと、Linux 側にもすでに wordpressディレクトリがあるのでダブってしまう。間違ってアップロードしてしまったら、Linux 側のダブりディレクトリを右クリックして一度削除し、再度 Windows wordpress フォルダの中身だけで上げなおす。
また、何かしら間違って大量アップロードをしてしまった場合に途中停止させるには Ctrl + . (ピリオド)。それでも止まらない時は諦めて終わるまで待つか無理やり終了させる。
中途半端に転送を止めてしまうと、キューに未送信のファイルが大量に残るので、Ctrl + A で全選択して右クリックから削除しておきましょう。
Linux 側でも確認。アップロードされてます。
[hrs@localhost html]$ cd wordpress/ [hrs@localhost wordpress]$ ll ←(エルエル。ls -la の短縮表記) 合計 192 -rw-r--r--. 1 root root 418 8月 4 23:39 index.php -rw-r--r--. 1 root root 19935 8月 4 23:39 license.txt -rw-r--r--. 1 root root 10303 8月 4 23:39 readme.html -rw-r--r--. 1 root root 5458 8月 4 23:39 wp-activate.php drwxr-xr-x. 9 root root 4096 8月 4 23:39 wp-admin ~(中略)~ -rw-r--r--. 1 root root 3065 8月 4 23:39 xmlrpc.php [hrs@localhost wordpress]$ cd ~ ← cd 半角スペース チルダ記号(キーボード右上)で各自のホームディレクトリに戻れる [hrs@localhost ~]$ pwd ← 今いるディレクトリの確認 /home/hrs [hrs@localhost ~]$
ブラウザで localhost/wordpress/wp-admin/ にアクセス。OK
「さあ、始めましょう!」をクリックして各種入力し
(14. phpMyAdmin データベースとユーザーの新規作成で設定した内容)
「送信」をクリック。
しかし、おそらく下記のように「ファイル wp-config.php に書き込めませんでした。」と表示されうまくいかないはずです。
アップロードしたWordPress関連のファイルに書き込み権限がないからです。
そこで権限を一時的に付与します。
[root@localhost ~]# cd /var/www/html/ wordpressのあるディレクトリへ移動 [root@localhost html]# ll パーミッションの確認 合計 12 -rw-r--r--. 1 root root 141 7月 31 23:27 index.html -rw-r--r--. 1 root root 24 8月 1 00:18 phpinfo.php drwxr-xr-x. 5 root root 4096 8月 4 23:39 wordpress 755 です [root@localhost html]# ll wordpress/ 内部ファイルは概ね 644 ディレクトリは 755 合計 192 -rw-r--r--. 1 root root 418 8月 4 23:39 index.php -rw-r--r--. 1 root root 19935 8月 4 23:39 license.txt -rw-r--r--. 1 root root 10303 8月 4 23:39 readme.html -rw-r--r--. 1 root root 5458 8月 4 23:39 wp-activate.php drwxr-xr-x. 9 root root 4096 8月 4 23:39 wp-admin -rw-r--r--. 1 root root 364 8月 4 23:39 wp-blog-header.php -rw-r--r--. 1 root root 1889 8月 4 23:39 wp-comments-post.php -rw-r--r--. 1 root root 3886 8月 4 23:39 wp-config-sample.php (白字:通常ファイル) drwxr-xr-x. 5 root root 69 8月 4 23:39 wp-content (青字:ディレクトリ) ~(後略)~ [root@localhost html]#
これらを全て一時的に 777 に変えます。
ファイルパーミッションの変更 - WordPress Codex 日本語版
に記載のあるようにパーミッション 777 は危険です。しかし必要ぽいディレクトリのみに権限を与えたり、766, 755 あたりでなんとかならないかいろいろ試してみたのですが chmod -R 777 ./wordpress/
で無防備にしないと書き込み成功しませんでした。と、いうわけで
[root@localhost html]# chmod -R 777 ./wordpress/ [root@localhost html]# ll 合計 12 -rw-r--r--. 1 root root 141 7月 31 23:27 index.html -rw-r--r--. 1 root root 24 8月 1 00:18 phpinfo.php drwxrwxrwx. 5 root root 4096 8月 4 23:39 wordpress [root@localhost html]# ll ./wordpress/ 合計 192 -rwxrwxrwx. 1 root root 418 8月 4 23:39 index.php -rwxrwxrwx. 1 root root 19935 8月 4 23:39 license.txt -rwxrwxrwx. 1 root root 10303 8月 4 23:39 readme.html -rwxrwxrwx. 1 root root 5458 8月 4 23:39 wp-activate.php drwxrwxrwx. 9 root root 4096 8月 4 23:39 wp-admin -rwxrwxrwx. 1 root root 364 8月 4 23:39 wp-blog-header.php -rwxrwxrwx. 1 root root 1889 8月 4 23:39 wp-comments-post.php -rwxrwxrwx. 1 root root 3886 8月 4 23:39 wp-config-sample.php (緑字:実行可能な通常ファイル) drwxrwxrwx. 5 root root 69 8月 4 23:39 wp-content (緑背景・青文字:Other のWriteアクセス可能なディレクトリ) ~(後略)~ (ファイル種別に基づく色付き表示 - lsっぽいコマンドを作る - 碧色工房)
一旦 WordPressのエラーページからブラウザの「戻る」ボタンで戻り、あらためてパスワードを入力して、再度チャレンジ。が、ダメ。
しかし、よく見ると今回は何やら通知が出ている。
めっちゃ見辛いが開いてみると…SELinux が原因で WordPress ディレクトリへの書き込みが拒否されているということはわかる。
SELinux を止める。(疲れたので後日)