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 |
|||
ARCH_FORMAT=tar.gz |
|||
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