Hi everyone and I'm sorry for my bad english.
No apologies necessary! Your English is very good, and you got your point across better than some native speakers.
What kind of data rate are you expecting? How often will you be reading and storing data? (Every few seconds, or hundreds of times per second?
If you use an RS-485 shield, you will have to have a sketch that reads the data and sends it to the Linux side for sending to the database. Also, you will have to use SoftwareSerial, you will not be able to use the hardware Serial object on pins 0 and 1 as those pins are dedicated to communicating with the Linux processor. When looking at the SoftwareSerial documentation, note the pin restrictions mentioned for the Leonardo: the Yun uses the same processor as the Leonardo, so the same restrictions apply.
You can use Bridge.put() in the sketch to set the received values, and read them from the Linux side. I don't know of a PHP library to read them on the Linux side, but there is a Python library that makes it easy. Is there a reason to go with PHP? It seems like there may be better support with Python.
A limitation of using Bridge.put() is that the receiving side is not notified when a value has been written, it can only see a difference in values - so if it's necessary to process the same value twice in a row, this is not the best solution. Also, the sending side will not know when the receiving side has actually read the value, so it's possible that the sketch could set two values before the Linux side can read it, and the Linux side will only see the last value.
Using the Bridge's Mailbox class is slightly more involved than Bridge.put(), but it works around these issues: the Linux side will get every value sent, in order, even if there are duplicates.
Another way to send the data to the Linux side is to use a Process object. This can send the data one at a time as parameters to the Linux side script, or it can start the script and then keep sending data by writing to the Process object - the script will receive it as standard input. The fist method is a bit easier to implement, the second gives better throughput and is faster.
If you want to do it all on the Linux (PHP) side, you will have to forget about using a shield - Linux has no direct ability to access any shield pins, only the Arduino sketch processor can access them. This means you will have to use an adapter that allows you to connect to the modbus using USB. Possible, but you may have an easier time finding a modbus library for the Arduino sketch than one for PHP or Python.
If I were starting this project, I would probably use an RS-485 shield, and an Arduino modbus library. Write a sketch to fetch the data needed, and print it out on the Serial port for testing. Then, write a Python script on the Linux side that can read that data and write it to the database. You can test that on the SSH shell by manually running the script and typing in values. Then, tie it all together by having the sketch start up the Python script and run it asynchronously, the use Process.println() to send data to the Linux side script.