http://astel.xyz/がRaspberry Piで動いています。 Raspberry Pi2じゃないから(?)重い…
OSはRaspbianです。
入れたものはこんな感じ - php - nginx - mysql - wordpress
特に詰まったところもなくできた。
phpとnginxは同じタスクに入れた。
[shell gutter="false"]
name: install php action: apt name={{ item }} state=present with_items:
name: install nginx apt: name=nginx state=present
name: start nginx service: name=nginx state=started
name: mkdir /var/www/html/ file: path=/var/www/html/ owner=root group=root mode=755 state=directory recurse=yes
name: copy nginx.conf template: src=default dest=/etc/nginx/sites-available/default
name: restart nginx service: name=nginx state=restarted [/shell]
name: copy nginx.confの中味はこんなん
[shell gutter="false"] server { listen 80; server_name {{ server_name }};
location / {
root {{ root }};
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME {{ root }}$fastcgi_script_name;
}
} [/shell] 変数は適当にvarsにいれてる。
[shell gutter="false"]
name: start mysql service: name=mysql state=started enabled=yes
name: set MySQL root password command: | mysql -e "set password for root@'{{ item }}' = PASSWORD('{{ mysql_root_passwd }}')" creates=/root/.my.cnf with_items:
- localhost ignore_errors: True
name: Install setuptools apt: name=python-dev
name: Install setuptools apt: name=python-setuptools
name: Install pip easy_install: name=pip
name: Install libmysqlclient-dev apt: name=libmysqlclient-dev
name: pip install MySQL-python pip: name=MySQL-python [/shell] ああ これが一番面倒だったかもしれない
なぜかっていうとMySQL-pythonをいれないとmysqlモジュールが使えない MySQL-pythonを入れるためにpipが必要 みたいなことを知らなかったので勉強になった あとcentosでの設定をそのまま使った部分がありcreates=/root/.my.cnfとかはいらないかも (ただ初回意外エラーが多分でる
[shell gutter="false"]
name: wget latest-wordpress.zip get_url: url=https://ja.wordpress.org/latest-ja.zip dest={{ tmp }}/wordpress.zip
name: unzip wordpress.zip shell: unzip -o -d /var/www/html/ {{ tmp }}/wordpress.zip && mv -f /var/www/html/wordpress/* /var/www/html/ && rm -rf /var/www/html/wordpress creates=/var/www/html/wp-login.php
name: Create wordpress databases mysql_db: > name={{ db_name }} state=present encoding=utf8 login_user=root login_password={{ mysql_root_passwd }}
name: Create wordpress database user mysql_user: > login_user=root login_password={{ mysql_root_passwd }} priv={{ db_name }}.*:ALL name={{ db_user }} password={{ db_password }}
name: cp wp-config.php command: cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php creates=/var/www/html/wp-config.php
name: wp-config.php db_name shell: sed -i -e "s/database_name_here/{{ db_name }}/" /var/www/html/wp-config.php
- name: wp-config.php db_user shell: sed -i -e "s/username_here/{{ db_user }}/" /var/www/html/wp-config.php
- name: wp-config.php db_password shell: sed -i -e "s/password_here/{{ db_password }}/" /var/www/html/wp-config.php [/shell]
パスワードとかはこれも変数にいれて設定。 最後はもう面倒でshellモジュール使ってしまった。 多分問題ないと思うけど。
あとは自分のipアドレスに入ってサイト名とか決めて完了。 簡単ですね。
もしlocalのipアドレスで設定するとmysqlの方でそのように登録されるため ドメインでアクセスした時CSSが壊れて表示されたりするかもしれません。 その時はmysqlに入ってwordpressのDBで [shell gutter="false"] mysql> update wp_options set option_value='http://astel.xyz' where option_name='siteurl'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> update wp_options set option_value='http://astel.xyz' where option_name='home'; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 [/shell]
とかで変更しましょう。