But you also need the client to represent data correctly, so it should have its own timer that is purely visual. In addition, it will know to make a request after the time limit to see if it indeed has hit the time limit, so that it can refresh its state to the user. To avoid mirrored logic / constants, though, I’d do it like this:
Client boots up, sends ping to the server.
Server initializes game session etc. sends back various config data (including length of a turn).
Client starts the timer, after the turn length has gone by, sends another request to the server,
OR player makes a move within the time limit, client sends the move, if it has actually been too long server sends back error.
etc.
Another way to do this is to have a config file hosted on your server that both the PHP app and the client Java app read from. So when the client starts up it redownloads the config every time, and the server reads the config directly to make various decisions.