committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 500 additions and 50 deletions
-
83README.md
-
10check_process
-
4conf/app.src
-
3conf/nginx.conf
-
4manifest.json
-
180scripts/_common.sh
-
51scripts/_sed
-
7scripts/backup
-
135scripts/change_url
-
30scripts/install
-
6scripts/remove
-
8scripts/restore
-
29scripts/upgrade
@ -1,38 +1,67 @@ |
|||||
# Wordpress multisite for YunoHost |
|
||||
================== |
|
||||
|
# Wordpress for YunoHost |
||||
|
|
||||
[Yunohost project](https://yunohost.org/#/) |
|
||||
https://wordpress.org/ |
|
||||
|
[](https://ci-apps.yunohost.org/jenkins/job/wordpress%20%28Official%29/lastBuild/consoleFull) |
||||
|
[](https://install-app.yunohost.org/?app=wordpress) |
||||
|
|
||||
======= |
|
||||
|
> *This package allow you to install wordpress quickly and simply on a YunoHost server. |
||||
|
If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* |
||||
|
|
||||
## English version |
|
||||
Wordpress lets you create your blog or web site very easily. <br/> |
|
||||
With this package, you can even activate the [multisite](http://codex.wordpress.org/Glossary#Multisite) |
|
||||
|
## Overview |
||||
|
WordPress is open source software you can use to create a beautiful website, blog, or app. |
||||
|
With this package, you can even activate the [multisite](https://codex.wordpress.org/Glossary#Multisite) option. |
||||
|
|
||||
**How to upgrade the package:** |
|
||||
1) sudo yunohost app upgrade --verbose wordpress -u https://github.com/YunoHost-Apps/wordpress_ynh <br/> |
|
||||
2) To be noted that once installed, the updates of the php code of the Wordpress blog are managed from the Wordpress web admin interface. <br/> |
|
||||
3) There may also be some upgrades of the wordpress_ynh package, these are to cover its integration whithin the Yunohost system. |
|
||||
|
**Shipped version:** 4.8 |
||||
|
|
||||
**Multi-user support:** Yes, with LDAP ability. |
|
||||
|
## Screenshots |
||||
|
|
||||
**See the status of this package:** |
|
||||
*[Last weekly report](https://forum.yunohost.org/t/rapport-hebdomadaire-dintegration-continue/2297)* |
|
||||
*[Last continuous integration test](https://ci-apps.yunohost.org/jenkins/job/wordpress%20%28Official%29/lastBuild/consoleFull)* |
|
||||
|
 |
||||
|
|
||||
======= |
|
||||
|
## Configuration |
||||
|
|
||||
## Version Française |
|
||||
Logiciel de création de blog ou de site Web avec option [multisite](http://codex.wordpress.org/Glossary#Multisite) |
|
||||
|
Use the admin panel of your wordpress to configure this app. |
||||
|
|
||||
**Mise à jour du package:** |
|
||||
1) sudo yunohost app upgrade --verbose wordpress -u https://github.com/YunoHost-Apps/wordpress_ynh <br/> |
|
||||
2) A noter qu'une fois installé, les mises à jour du code php du blog Wordpress se font depuis l'interface wed d'admin de Wordpress <br/> |
|
||||
3) Il peut également y avoir des mises à jour du paquet wordpress_ynh, celles-ci sont liées à l'intégration du paquet dans le systeme Yunohost. |
|
||||
|
## Documentation |
||||
|
|
||||
**Multi-utilisateur:** Oui, avec support ldap. |
|
||||
|
* Official documentation: https://codex.wordpress.org/ |
||||
|
* YunoHost documentation: There no other documentations, feel free to contribute. |
||||
|
|
||||
**Voir l'état du package:** |
|
||||
*[Dernier rapport hebdomadaire](https://forum.yunohost.org/t/rapport-hebdomadaire-dintegration-continue/2297)* |
|
||||
*[Dernier test d'intégration continue](https://ci-apps.yunohost.org/jenkins/job/wordpress%20%28Official%29/lastBuild/consoleFull)* |
|
||||
|
## YunoHost specific features |
||||
|
|
||||
|
* Integration with YunoHost users and SSO: |
||||
|
* private mode: Blog only accessible by YunoHost users |
||||
|
* public mode: Visible by anyone, YunoHost users automatically connected |
||||
|
* Automatic update of wordpress core, plugins and themes |
||||
|
* Allow to set up a [multisite](https://codex.wordpress.org/Glossary#Multisite) instance. |
||||
|
|
||||
|
#### Multi-users support |
||||
|
|
||||
|
Supported, with LDAP and SSO. |
||||
|
|
||||
|
#### Supported architectures |
||||
|
|
||||
|
* Tested on x86_64 |
||||
|
* Tested on RaspberryPi |
||||
|
|
||||
|
## Limitations |
||||
|
|
||||
|
* Multisite only available on subdirectories. |
||||
|
|
||||
|
## Links |
||||
|
|
||||
|
* Report a bug: https://github.com/YunoHost-Apps/wordpress_ynh/issues |
||||
|
* Wordpress website: https://wordpress.org/ |
||||
|
* YunoHost website: https://yunohost.org/ |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
Developers infos |
||||
|
---------------- |
||||
|
|
||||
|
Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/wordpress_ynh/tree/testing). |
||||
|
|
||||
|
To try the testing branch, please proceed like that. |
||||
|
``` |
||||
|
sudo yunohost app install https://github.com/YunoHost-Apps/wordpress_ynh/tree/testing --verbose |
||||
|
or |
||||
|
sudo yunohost app upgrade wordpress -u https://github.com/YunoHost-Apps/wordpress_ynh/tree/testing --verbose |
||||
|
``` |
||||
@ -1,5 +1,5 @@ |
|||||
SOURCE_URL=https://wordpress.org/wordpress-4.8.tar.gz |
|
||||
SOURCE_SUM=b91248a7220a7fb1ca293c3a0ec8db6c |
|
||||
|
SOURCE_URL=https://wordpress.org/wordpress-4.9.1.tar.gz |
||||
|
SOURCE_SUM=111ecbfc98633103e1fc1105c0c00c76 |
||||
SOURCE_SUM_PRG=md5sum |
SOURCE_SUM_PRG=md5sum |
||||
ARCH_FORMAT=tar.gz |
ARCH_FORMAT=tar.gz |
||||
SOURCE_IN_SUBDIR=true |
SOURCE_IN_SUBDIR=true |
||||
|
|||||
@ -0,0 +1,51 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
# https://github.com/YunoHost/yunohost/pull/394 |
||||
|
|
||||
|
# Substitute/replace a string (or expression) by another in a file |
||||
|
# |
||||
|
# usage: ynh_replace_string match_string replace_string target_file |
||||
|
# | arg: match_string - String to be searched and replaced in the file |
||||
|
# | arg: replace_string - String that will replace matches |
||||
|
# | arg: target_file - File in which the string will be replaced. |
||||
|
# |
||||
|
# As this helper is based on sed command, regular expressions and |
||||
|
# references to sub-expressions can be used |
||||
|
# (see sed manual page for more information) |
||||
|
ynh_replace_string () { |
||||
|
local delimit=@ |
||||
|
local match_string=$1 |
||||
|
local replace_string=$2 |
||||
|
local workfile=$3 |
||||
|
|
||||
|
# Escape the delimiter if it's in the string. |
||||
|
match_string=${match_string//${delimit}/"\\${delimit}"} |
||||
|
replace_string=${replace_string//${delimit}/"\\${delimit}"} |
||||
|
|
||||
|
sudo sed --in-place "s${delimit}${match_string}${delimit}${replace_string}${delimit}g" "$workfile" |
||||
|
} |
||||
|
|
||||
|
# Substitute/replace a password by another in a file |
||||
|
# |
||||
|
# usage: ynh_replace_password_string match_string replace_string target_file |
||||
|
# | arg: match_string - String to be searched and replaced in the file |
||||
|
# | arg: replace_string - String that will replace matches |
||||
|
# | arg: target_file - File in which the string will be replaced. |
||||
|
# |
||||
|
# This helper will use ynh_replace_string, but as you can use special |
||||
|
# characters, you can't use some regular expressions and sub-expressions. |
||||
|
ynh_replace_password_string () { |
||||
|
local match_string=$1 |
||||
|
local replace_string=$2 |
||||
|
local workfile=$3 |
||||
|
|
||||
|
# Escape any backslash to preserve them as simple backslash. |
||||
|
match_string=${match_string//\\/"\\\\"} |
||||
|
replace_string=${replace_string//\\/"\\\\"} |
||||
|
|
||||
|
# Escape the & character, who has a special function in sed. |
||||
|
match_string=${match_string//&/"\&"} |
||||
|
replace_string=${replace_string//&/"\&"} |
||||
|
|
||||
|
ynh_replace_string "$match_string" "$replace_string" "$workfile" |
||||
|
} |
||||
@ -0,0 +1,135 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
#================================================= |
||||
|
# GENERIC STARTING |
||||
|
#================================================= |
||||
|
# IMPORT GENERIC HELPERS |
||||
|
#================================================= |
||||
|
|
||||
|
source _common.sh |
||||
|
source /usr/share/yunohost/helpers |
||||
|
source _sed |
||||
|
|
||||
|
#================================================= |
||||
|
# RETRIEVE ARGUMENTS |
||||
|
#================================================= |
||||
|
|
||||
|
old_domain=$YNH_APP_OLD_DOMAIN |
||||
|
old_path=$YNH_APP_OLD_PATH |
||||
|
|
||||
|
new_domain=$YNH_APP_NEW_DOMAIN |
||||
|
new_path=$YNH_APP_NEW_PATH |
||||
|
|
||||
|
app=$YNH_APP_INSTANCE_NAME |
||||
|
|
||||
|
#================================================= |
||||
|
# LOAD SETTINGS |
||||
|
#================================================= |
||||
|
|
||||
|
multisite=$(ynh_app_setting_get $app multisite) |
||||
|
|
||||
|
if [ $multisite -eq 1 ] |
||||
|
then |
||||
|
echo "A multisite installation of Wordpress can't be moved easily. Please have a look at the Wordpress codex to learn more about that." >&2 |
||||
|
ynh_die "https://codex.wordpress.org/Moving_WordPress#Moving_WordPress_Multisite" |
||||
|
fi |
||||
|
|
||||
|
#================================================= |
||||
|
# CHECK THE SYNTAX OF THE PATHS |
||||
|
#================================================= |
||||
|
|
||||
|
test -n "$old_path" || old_path="/" |
||||
|
test -n "$new_path" || new_path="/" |
||||
|
new_path=$(ynh_normalize_url_path $new_path) |
||||
|
old_path=$(ynh_normalize_url_path $old_path) |
||||
|
|
||||
|
#================================================= |
||||
|
# CHECK WHICH PARTS SHOULD BE CHANGED |
||||
|
#================================================= |
||||
|
|
||||
|
change_domain=0 |
||||
|
if [ "$old_domain" != "$new_domain" ] |
||||
|
then |
||||
|
change_domain=1 |
||||
|
fi |
||||
|
|
||||
|
change_path=0 |
||||
|
if [ "$old_path" != "$new_path" ] |
||||
|
then |
||||
|
change_path=1 |
||||
|
fi |
||||
|
|
||||
|
#================================================= |
||||
|
# MANAGE FAILURE OF THE SCRIPT |
||||
|
#================================================= |
||||
|
|
||||
|
# Exit if an error occurs during the execution of the script |
||||
|
ynh_abort_if_errors |
||||
|
|
||||
|
#================================================= |
||||
|
# STANDARD MODIFICATIONS |
||||
|
#================================================= |
||||
|
# MODIFY URL IN NGINX CONF |
||||
|
#================================================= |
||||
|
|
||||
|
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf |
||||
|
|
||||
|
# Change the path in the nginx config file |
||||
|
if [ $change_path -eq 1 ] |
||||
|
then |
||||
|
# Make a backup of the original nginx config file if modified |
||||
|
ynh_backup_if_checksum_is_different "$nginx_conf_path" |
||||
|
|
||||
|
# Move from sub path to root |
||||
|
if [ "$new_path" == "/" ] |
||||
|
then |
||||
|
ynh_replace_string "\(^.*rewrite.*\^$old_path.* permanent;\)" "#sub_path_only\1" "$nginx_conf_path" |
||||
|
ynh_replace_string "\(rewrite *\^\)$old_path\$ $old_path/*" "\1$new_path$ $new_path" "$nginx_conf_path" |
||||
|
|
||||
|
# Move to a sub path |
||||
|
else |
||||
|
ynh_replace_string "^#sub_path_only" "" "$nginx_conf_path" |
||||
|
ynh_replace_string "\(rewrite *\^\)$old_path\$ $old_path/*" "\1$new_path$ $new_path/" "$nginx_conf_path" |
||||
|
fi |
||||
|
|
||||
|
ynh_replace_string "location ${old_path%/}/" "location ${new_path%/}/" "$nginx_conf_path" |
||||
|
|
||||
|
# Change the rewrite instructions for multisite |
||||
|
ynh_replace_string "rewrite \^$old_path\(.*last;\)" "rewrite ^$new_path\1" "$nginx_conf_path" |
||||
|
ynh_replace_string "$old_path\$2 last;" "$new_path\$2 last;" "$nginx_conf_path" |
||||
|
|
||||
|
# Change the rewrite instruction with $request_filename |
||||
|
ynh_replace_string "${old_path%/}/index.php?q=" "${new_path%/}/index.php?q=" "$nginx_conf_path" |
||||
|
|
||||
|
# Calculate and store the nginx config file checksum |
||||
|
ynh_store_file_checksum "$nginx_conf_path" |
||||
|
fi |
||||
|
|
||||
|
# Change the domain for nginx |
||||
|
if [ $change_domain -eq 1 ] |
||||
|
then |
||||
|
# Delete file checksum for the old conf file location |
||||
|
ynh_delete_file_checksum "$nginx_conf_path" |
||||
|
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf |
||||
|
|
||||
|
nginx_conf_path=/etc/nginx/conf.d/$new_domain.d/$app.conf |
||||
|
# Calculate and store the nginx config file checksum |
||||
|
ynh_store_file_checksum "$nginx_conf_path" |
||||
|
fi |
||||
|
|
||||
|
#================================================= |
||||
|
# SPECIFIC MODIFICATIONS |
||||
|
#================================================= |
||||
|
# UPDATE THE DATABASE |
||||
|
#================================================= |
||||
|
|
||||
|
ynh_mysql_execute_as_root "UPDATE wp_options SET option_value='$new_domain$new_path' WHERE option_name='siteurl'" $app |
||||
|
ynh_mysql_execute_as_root "UPDATE wp_options SET option_value='$new_domain$new_path' WHERE option_name='home'" $app |
||||
|
|
||||
|
#================================================= |
||||
|
# GENERIC FINALISATION |
||||
|
#================================================= |
||||
|
# RELOAD NGINX |
||||
|
#================================================= |
||||
|
|
||||
|
systemctl reload nginx |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue