Synology Touch your scripts! Don't be lazy...

I have just created a new shell script for my NAS. But its behavior is really weird. It seems that concatenating strings is actually overwriting them. Ex.:

echo $A$B

results in: 12cd

Click to read more

Also, redirecting any output into a file results in a new folder and an new empty file, both with a weird name. Ex.:

echo Hello World > $FILENAME

results in a file named "outputFile" and a folder named "" ( beeing displayed as 'dots' in Windows Explorer!). Both are well located under /volume1/sharedFolder/ and visible in Windows Explorer. However the folder does not appear when executing 'ls -la' in a console on the NAS (only the file appears) and the only way to delete this folder is to execute 'rm -R /volume1/sharedFolder' in the console.

I quickly realized that this behavior was a consequence of creating the file on a Shared Folder of the NAS using the Windows Explorer's contextual menu "New">"Text Document"... Creating an empty file with the command "touch" directly in a console on the NAS does not suffer the same issues.

There is indeed at least one difference that I know between the file format of Unix and DOS: the return character which is 0x0A in Unix, while it is 0x0A, 0x0D in DOS (a.k.a /n in Unix and /r/n in DOS)

I realized that this was the issue because each empty line in the script was resulting in an error: ": not founde x:", x being the line number. Meaning that the "empty lines" were actually not empty (due to the /r).

Notice that the magic "touch" only works because I use next Notepad++ to edit the file. Indeed, this great freeware preserve the Unix file format while NotePad, WordPad, etc..., do not.

I did use the Windows Explorer's contextual menu to create the empty file because I was too lazy to create a new file with notepad++ and browse next for the target subfolder on the NAS where I had to save it :(

Otherwise, with the "Save As" of NotePad++, I would have been able to pick the right format: "Unix Script File" :)

Synology Buffalo + DD-WRT: Disable "Cross Site Action detected"

I have so many devices and services on my LAN that I can't remember all their Urls: IP Camera, VDSL modem, Network Printer, Router, File Server, Backup Server, VMWare Server, NAS, Blog, etc... So, I did create an administration page (php) on my NAS to list them with their intranet or internet address depending on the variable $_SERVER['SERVER_NAME'].

Unfortunately, when clicking on the link to my Router's web interface (a Buffalo WZR-HP-G300NH with DD-WRT v24SP2), this one returns the message "Cross Site Action detected".

As the purpose is not for me to copy the Url manually, I did look how to disable this protection on the Buffalo and here is the tip: Click to read more

  1. Run a telnet or ssh console
  2. Log on as 'root' even if you changed the default username via the web interface (the default password is 'admin' but I hope you did change it).
  3. And type the following commands:
  • nvram set no_crossdetect=1
  • nvram commit

That's it.

P.S.: more information on SSH/Telnet and the CLI here.

SynologyWordpress Edit WordPress sources on Synology via the shared folder "web"

Although all Plugins' files can be edited directly within WordPress, you may sometimes prefer to open them with your favorite editor. Also, you could desire to edit some sources of WordPress...

And if it is quite easy to find the files to be modified under the share folder "web" (\\<SynologyHostname>\web), you will quickly notice that you may not save any change...

This is simply because the folder 'wordpress' and its content (on Synology) belong by default to the user "nobody". Click to read the solution

To save your changes, you will first have to change the owner:

  • Check that Telnet is enabled on your Synology (Start Menu/Control Panel => Terminal)
  • Start the command (in a MS-Dos prompt): Telnet <SynologyHostname>
  • Log in with the root account and its password (same password as the Synology "admin" account)
  • Go to the physical folder associated to the shared folder "web": cd /volume1/web/
  • Take ownership of WordPress's whole content: chown -R <YourAccount> wordpress

For sure, <YourAccount> must exist on Synology, be the same as your windows account (I.e.: same name and same password) and have privileges on the folder "web". Otherwise, create such an account (Synology's Start Menu/Control Panel => User) and don't forget to grant him Read/Write access on "web" (Via the Synology User's tab "Privileges Setup")

Once your changes saved, never forget to give back the ownership to "nobody"(*) otherwise WordPress won't be able to update its plugins, themes, etc... automatically anymore.

(*) Indeed, by default and for security reasons, the httpd demon of apache runs with the account "nobody". All folders/files created by httpd (a.o.: during the installation of WordPress) belong therefore to "nobody". All changes executed by https (e.g.: files editing) are executed with the credentials of "nobody"...

SynologyWordpress WordPress on Synology accessible with both a Netbios name and Domain name

When I have decided to install the package WordPress on my Synology, it was intended to be used as a basic "Knowledge Management Software" as I explained here.

One of my requirement was however not covered out of the box by this solution: WordPress on Synology might only be configured to be accessible with one domain name.

Click to read why


  • Either with the Netbios name of the NAS, accessible from the Intranet only(my home network).
  • Or with the DNS name associated with your public IP, accessible from the Internet only (*) in my case.

(*) Indeed, my DNS name is associated with the IP of my VDSL modem (my "public" IP). And although all http requests are forwarded to my NAS when they come from Internet, they are not when they come from my Intranet (So far, I didn't find how to enable the Port Forwarding for this traffic and don't even know if it's possible with my modem; a Sagem Fast 3464):  If I browse my DNS name from my Intranet, I get the administration page of the modem.

[EDIT] Now, when I browse my DNS name, I don't get the Administration page of my Modem anymore but a message "Your internet connection is up, please close your browser and restart it again". This is something configured by my Internet Provider in their own DNS Servers.

Fortunately, there is an easy solution:

Click to read the solution

==> Install the WordPress' plugin "MultiDomain" and configure it to support "several domains": a first one being simply my Netbios name and another one being your DNS name.

This configuration has to be done in the file "config.php", either with the "WordPress Plugins Editor" or with your favorite editor; the file can be accessed via the system shared drive "web" of Synology: \\<SynologyHostname>\web\wordpress\wp-content\plugins\multidomain\config.php). If you do it with your own editor, read this post about file access rights.

That solution is from far easier than any advanced manual .htaccess customization and more effective than any other multi-site/multi-domain plugin I found ;)

[EDIT] I have finally decided to access my blog only with its fully qualified domain name and never with its Netbios name anymore, including from my Intranet. So, I had to solve the access issue when using a domain name within my Intranet. I use the DNS Server of my Synology for that purpose.

SynologyWordpress WordPress on my Synology!

This first post to proudly announce that I finally decided to install the WordPress Package on my Synology, a DS209+ with DSM 4.1, and start to blog.

Nothing could have been easier than installing this package... Click to read more

  • Log on your Synology as an administrator
  • Open the "Package Center" via the "Start Menu"
  • Go to the "Available" tab
  • Click "Install" on the package "WordPress".

The setup wizard will prompt you to get the root's password in order to create a mysql database. By default, the Synology has no password configured to access mysql with the 'root' account. So I decided to configure one, using "phpMyAdmin":

  • Open "phpMyAdmin" via the "Start Menu"

If "phpMyAdmin" is not available in this menu:

  • Go back to the "Package Center"
  • Go to the "Available" tab
  • Click Install on the package "phpMyAdmin"

Once "phpMyAdmin" open:

  • select the tab "Users"
  • for each "root" entry (one per host), click on "Edit Privileges"
  • scroll down in the "Privileges" window and change the password

Use the "root" account and its new password to complete the setup of WordPress. The only other information required to configure WordPress on your Synology is a title and a tagline for your blog :)

You can now access your blog on http://YourSynology/wordpress.

In a next post, I will explain how to easily access your blog from both intranet and internet, i.e.: using either your Synology netbios name  (hostname) or DNS name (domain name).